制作聊天应用程序时遇到一个奇怪的问题。
如果我查看通知,则会显示MessageActivity
。
当我按返回键时,请呼叫此。
startActivity(new Intent(MessageActivity.this, MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
问题在于,使用返回键进入主活动屏幕后,当我返回到应用程序时,MessageActivity
再次打开。
使用homekey再次打开MainActivity。
Intent intent = new Intent(this, MessageActivity.class);
Bundle bundle = new Bundle();
bundle.putString("userid", user);
intent.putExtras(bundle);
intent.addFlags(Intent. FLAG_ACTIVITY_NO_HISTORY);
PendingIntent pendingIntent = PendingIntent.getActivity(this, j, intent, PendingIntent.FLAG_ONE_SHOT);
Uri defaultSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(Integer.parseInt(icon))
.setContentTitle(title)
.setContentText(body)
.setAutoCancel(true)
.setSound(defaultSound)
.setContentIntent(pendingIntent);
NotificationManager noti = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
FLAG_ACTIVITY_NO_HISTORY
无效。
答案 0 :(得分:0)
1。在MainActivity中,如果要转到MessageActivity,只需startActivity
startActivity(new Intent(MainActivity.this, MessageActivity.class);
并且不要完成MainActivity使其在后台打开
,当您想返回MainActivity时,只需完成MessageActivity
finish();
并且不要启动任何活动,因为MainActivity已经启动并且处于后台。
2。,或者您想转到MainActivity时可以在MainActivity中做相反的操作
startActivity(new Intent(MainActivity.this, MessageActivity.class);
finish();
因此MainActivity已完成,并且不再在后台运行
,然后在MessageActivity中返回。启动MainActivity并完成当前活动
startActivity(new Intent(MessageActivity.this, MainActivity.class);
finish();
为此更改通知意图的标志
intent.addFlags(Intent. FLAG_ACTIVITY_NO_HISTORY);
对此
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);