重新打开应用程序时出现问题

时间:2019-07-10 14:02:16

标签: android

制作聊天应用程序时遇到一个奇怪的问题。

如果我查看通知,则会显示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无效。

1 个答案:

答案 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);