0

代碼開放活動B之後從廣播接收器返回主實際上從通知

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(G.context) 
       .setSmallIcon(R.mipmap.ic_launcher) 
       .setContentTitle(G.context.getString(R.string.app_name)) 
       .setContentText("text") 
       .setAutoCancel(true) 
       .setColor(Color.MAGENTA); 

     Intent intent = new Intent(G.context, B.class); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 

     TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(G.context); 
     taskStackBuilder.addParentStack(MainActivity.class); 
     taskStackBuilder.addNextIntent(intent); 
     PendingIntent resultPendingIntent = taskStackBuilder.getPendingIntent(0, PendingIntent.FLAG_CANCEL_CURRENT); 
     mBuilder.setContentIntent(resultPendingIntent); 
     NotificationManager mNotificationManager = (NotificationManager) G.context.getSystemService(Context.NOTIFICATION_SERVICE); 
     mNotificationManager.notify(2, mBuilder.build()); 

回答

0

創建通知。如果您目前在MainActivity.java,然後點擊通知,然後轉到B Activity的只是簡單的調用this.finish()onBackPressed()在你的後面按控制onClick()方法。如果您在任何地方打開您的B Activity,只需點擊一個通知,然後在您的B activity中按以下方式撥打電話。

@Override 
public void onBackPressed() { 
    Intent i = new Intent(this, MainActivity.class); 
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(i); 
} 

你可以像這樣

你不要其他方式需要做任何事情。默認情況下,當您從活動A移動到活動B時,Android會將活動A添加到後臺堆棧中。當您按下活動B中的後退按鈕或完成時,它會從後臺堆棧自動恢復活動A.

如果您希望以編程方式完成活動B的調用,請在完成時調用活動的finish()方法。

更多細節Check this

+0

感謝 用這種方法,當我打開從應用的B活性,並把返回鍵按鈕,新創建的活動主要這是不對的。我認爲 – alipro

+0

它可能通過調用簡單的'onBackPressed()'方法也可以'this.finish()',但如果沒有任何以前的活動堆棧可用,那麼應用程序將被關閉 – Shailesh

+0

當我們調用B活動時,這應該不會發生程序 也就是說,你不應該從主要活動中創建一個實例 還有其他方法嗎? – alipro