2017-08-08 7 views
0

私の問題はお互いに関係している可能性があります。私はonfinishメソッドでインテントを起動するカウントダウンタイマーサービスを実行します。完了時に完了すると自動的に開く/私はそれをしたくないアプリを持って来る。なぜこれはそうですか? idは通知を表示するだけのようです。また、アクティビティを再開するのではなく通知をクリックすると、別のアクティビティが作成されます。私は問題が意図によって互いに関連していると考えました。ここonFinishからコードアクティビティの中断とアクティビティの複数のインスタンス

()ではない通知

Intent intent = new Intent(BroadcastService.this, MainActivity.class); 


      intent.putExtra("id1",id1); 

      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 



      startActivity(intent); 

、ここからは、あなたが、あなたのMainActivityを開くにはしたくない場合は、通知

NotificationCompat.Builder notificBuilder = new NotificationCompat.Builder(this); 
    notificBuilder.setContentTitle("Loot"); 
    notificBuilder.setContentText("Claim your Gold now!"); 

    notificBuilder.setSmallIcon(R.drawable.gold2); 
    Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    notificBuilder.setSound(soundUri); 
    notificBuilder.setAutoCancel(true); 

    Intent backhome = new Intent(this, MainActivity.class); 
    backhome.putExtra("id2",id2); 

    TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(this); 
    taskStackBuilder.addParentStack(MainActivity.class); 
    taskStackBuilder.addNextIntent(backhome); 
    PendingIntent pd = taskStackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 


    notificBuilder.setContentIntent(pd); 
    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.notify(notifID, notificBuilder.build()); 

    isNoteActive = true; 

} 
+0

'onFinish()'で何をしたいですか?私はここでポイントを逃している。 –

+0

なぜ 'Notification'に' TaskStackBuilder'を使用していますか? –

答えて

0

のコードがされていますこのコードを書くべきではありません:

オープニングMainActivityはこれがまさにこれです。

+0

その通過エキストラは、エキストラを通過して開かない方法があります。 –

+0

"エキストラの受け渡し"は、アクティビティを開くというコンテキストでのみ意味があります。これは私があなたがやっていることは、(a)活動を開き、(b)その活動に余分なデータを送ることであることを意味します。アクティビティを開かない場合は、なぜ追加情報を送信しますか? –

関連する問題