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

相关问题