0

同じクラスにないレシーバーを登録する必要があります。つまり、私はサービスを持っています:

サービス.java

public class service extends Service {

    NotificationManager mNotificationManager;

    @Override
    public IBinder onBind(Intent intent) {
        // Not used
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        checkPref();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();

    }

    private void checkPref() {
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(service.this);
        notificationBuilder.setContentTitle("Title");
        notificationBuilder.setContentText("Context");
        notificationBuilder.setTicker("TickerText");
        notificationBuilder.setWhen(System.currentTimeMillis());
        notificationBuilder.setSmallIcon(R.drawable.ic_stat_icon);

        Intent notificationIntent = new Intent(this, service.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

        notificationBuilder.setContentIntent(contentIntent);

        notificationBuilder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE);

        mNotificationManager.notify(1, notificationBuilder.build());
    }
}

およびMyScheduleReceiver.java

public class MyScheduleReceiver extends BroadcastReceiver {

    // Restart service every 30 min
    private static final long REPEAT_TIME = 30 * 1000 * 4;// 1800000 ;

    @Override
    public void onReceive(Context context, Intent intent) {
        Intent service = new Intent(context, service.class);
        context.startService(service);
    }
}

今、私は次のような受信者を登録する必要があります:

registerReceiver(//thereceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

onCreate内。どうすればできますか?私は//thereceiver書く必要があると思いますMyScheduleReceiverが、もちろん、サービス内のonCreateに書き込むと、それを見つけることができません。どのようにできるのか?ありがとう

4

1 に答える 1

0

試す

registerReceiver(yourReceiver, new IntentFilter("android.intent.action.BATTERY_CHANGED"));

追加する必要があるかもしれません

<uses-permission android:name="android.permission.BROADCAST_STICKY"/>

あなたのマニフェストファイルで

于 2013-07-19T15:42:59.407 に答える