2016-06-15 8 views
0

ユーザーが通知をクリックしたときに、アクティビティに余分に送信したい。エクストラは正しく受信されますが、ユーザーが通知をクリックするとアクティビティがリセットされます。私は、すでに開かれているときにそれを再起動することなく、現在の活動を維持したい。Androidの通知、現在のアクティビティにエキストラを送る

これは私が通知を作成する方法である:

Intent notifIntent = MyActivity.getIntent(); 
    notifIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

    NotificationCompat.Builder(context) 
     .setContentIntent(PendingIntent.getActivity(context, notificationId, notifIntent, PendingIntent.FLAG_UPDATE_CURRENT)) 

しかしMyActivityは常にそれがすでにフォアグラウンドで実行にもかかわらず、再起動されます。

+0

http://stackoverflow.com/a/12043699/3817374 – Beena

+0

android:launchMode = "singleTop"と同じ結果が得られます。 –

答えて

0

パッケージマネージャを使用できます。

アプリが既に実行されている場合は、アプリを再起動しません。 しかし、アプリがバックグラウンドであるか、または閉じているときに通知を受け取ると、アプリが開きます。

PackageManager packageManager = getPackageManager(); 
Intent notifIntent = packageManager.getLaunchIntentForPackage(com.example.testapp); 

PendingIntent pendingIntent = PendingIntent.getActivity(context, notificationId, notifIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
NotificationCompat.Builder(context).setContentIntent(pendingIntent); 

しかし、あなただけのすべての活動を開始するO/W通知レシーブにデータを送信している場合は、多分あなたは、ローカルブロードキャストを使用することができますか?

関連する問題