2

次のコードは機能しません。getapplicationcontext の代わりにこれも試してください。ヒントが必要です:

public class AlarmReceiver extends BroadcastReceiver {
     @Override
     public void onReceive(Context context, Intent intent) {     
         NotificationCompat.Builder nb = new NotificationCompat.Builder();
         nb.setContentTitle("title");
         nb.setContentText("message");
         nb.setSmallIcon(R.drawable.ic_launcher);
         NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
         final Intent notificationIntent = new Intent(getApplicationContext(), MainActivity.class);
         notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
         final PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(), 0, notificationIntent, 0);
         nb.setContentIntent(contentIntent);
         Notification notification = nb.getNotification();
         nm.notify(0, notification);
      }

    }

onclickの後に通知を削除するにはどうすればよいですか?

更新: 間違いを解決しました。しかし、まだ 1 つの間違いがあります。

スクリーンショット

4

2 に答える 2

2

getSystemServiceをcontext.getSystemServiceに置き換えます!

于 2012-10-25T21:58:02.550 に答える
0

BroadcastReceiversにはコンテキストがないため、それを行うことはできません。

受け取ったインテントをサービスまたはアクティビティに転送し、そのクラスが通知を処理できるようにする必要があります。

于 2012-10-23T15:03:01.413 に答える