5

私の通知はサービス(service.java)であり、設定画面のチェックボックス設定がチェックされているときにサービスが行うことは、バッテリーレベルの通知を開始することです。現在機能していないのはMainActivity、通知をクリックして入力する意図です。これがコードです

if(mprefs.getBoolean("notification_a", false)==true){
    notificationBuilder = new NotificationCompat.Builder(context);

    notificationBuilder.setOngoing(true);
    notificationBuilder.setContentTitle("Battery Stats Informations");
    notificationBuilder.setContentText("Carica residua: " +level+"%" + " " + "Temperatura: " +temperature+ "°C");
    //notificationBuilder.setTicker("Informazioni batteria");
    notificationBuilder.setWhen(System.currentTimeMillis());
    notificationBuilder.setSmallIcon(R.drawable.icon_small_not);
    Intent notificationIntent = new Intent(context, MainActivity.class);
    PendingIntent contentIntent = PendingIntent.getBroadcast(context, 0, notificationIntent, 0);
    notificationBuilder.setContentIntent(contentIntent);

    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

    Notification not=notificationBuilder.build();

    mNotificationManager.notify(SIMPLE_NOTIFICATION_ID,not);
} else {
    mNotificationManager.cancelAll();
}

意図Intent notificationIntent = new Intent(context, MainActivity.classは通用しない。何か役に立ちますか?

4

1 に答える 1

5

通知がクリックされたときにアクティビティを開始する場合: 次を使用します。

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);

Context.startActivity(Intent) の呼び出しなど、新しいアクティビティを開始する PendingIntent を取得します。

代わりに:

PendingIntent contentIntent = PendingIntent.getBroadcast(context, 0, notificationIntent, 0);

Context.sendBroadcast() の呼び出しなど、ブロードキャストを実行する PendingIntent を取得します。

于 2013-08-20T09:08:38.407 に答える