アプリが毎日のチェックを行うときに、ユーザーに通知しようとしています。コードは正常に実行されますが、通知はステータス バーに表示されません。誰でも理由がわかりますか?
public class OnNotificationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
WakeReminderIntentService.acquireStaticLock(context);
Intent i = new Intent(context, NotificationService.class);
context.startService(i);
Bundle extra = intent.getExtras();
int icon = extra.getInt("icon");
notification(context, icon);
Log.d("DailyCheck", "Checking for sales");
}
private void notification(Context ctx, int icon) {
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) ctx.getSystemService(ns);
CharSequence tickerText = "ticker";
long when = System.currentTimeMillis() + 1000;
Notification notification = new Notification(icon, tickerText, when);
CharSequence contentTitle = "Title Here";
CharSequence contentText = "Text here";
Intent notificationIntent = new Intent(ctx, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(ctx, 0, notificationIntent, 0);
notification.setLatestEventInfo(ctx, contentTitle, contentText, contentIntent);
notification.flags |= Notification.DEFAULT_SOUND;
mNotificationManager.notify(9999, notification);
}
}
EDIT:メインスレッド(通知メソッド)にコピーしてみましたが、うまくいきました。それで、それはBroadcastReceiverで何かする必要がありますか?
EDIT 2:それに渡されるコンテキストは MainActivity.this (私の主要なアクティビティ)