プッシュ通知メッセージを表示するアプリケーションを開発しています。 Toastメッセージを使ってメッセージを表示しようとすると、どのような状況でも正常に動作しています。しかし、これらのプッシュ通知にはStatusBarNotifications
を使用します。アプリが実行されているときに正常に動作しています。シャットダウン後にデバイスを再起動すると、ステータスバーの通知が表示されません。これは、アプリが強制終了された場合と同じです。アプリケーションが実行されていないときにonReceive関数のコンテキストが正常に動作しない
どうすればこの問題を解決できますか?
次のコードです:
public void onReceive(Context context, Intent intent)
{
if (intent.getAction().equals("com.google.android.c2dm.intent.RECEIVE"))
{
handleMessage(context, intent);
}
}
private void handleMessage(Context context, Intent intent)
{
String message= intent.getStringExtra("msg");
Toast.makeText(context.getApplicationContext(),"\n message : "+message,1).show();
NotificationManager objNotfManager=(NotificationManager) context.getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
int icon = R.drawable.logo;
CharSequence tickerMessage = message;
long when= System.currentTimeMillis();
Notification objNotf = new Notification(icon,tickerMessage,when);
CharSequence title = "New message from "+message;
CharSequence mesage = "You have "+number+" unread messages";
Intent NotifIntent = new Intent(context.getApplicationContext(),TabContainer.class);
NotifIntent.putExtra("message",message);
PendingIntent contentIntent = PendingIntent.getActivity( context.getApplicationContext(), 0, NotifIntent, 0);
objNotf.setLatestEventInfo( context.getApplicationContext(), title, mesage, contentIntent);
objNotfManager.notify(1,objNotf);
}
は、以前私が文脈で使用されるが、それは他のウィジェット、他のトーストのために働いていませんでした。だから私はcontext.getApplicationContext()
を使うつもりだった。
参照http://stackoverflow.com/questions/6921464/android-context-has-some-problem-when-displaying-push-notification-using-c2dm/8974369#8974369 –