【发布时间】:2015-10-15 15:51:32
【问题描述】:
我有 2 个活动 LoginActivity (singleTask) 和 MainActivity (singleTop)。应用程序的入口点是登录活动。它检查用户凭据是否可用,然后启动主要活动。之后, LoginActivity 调用完成。这样我就可以防止用户返回登录。
startActivity(new Intent(getApplicationContext(), MainActivity.class));
finish();
因此,LoginActivity 会从后台堆栈中清除。但是我刚刚发现调用完成的一个缺点:
当用户点击我要启动 LoginActivity 的通知时:
Intent intent = new Intent(this, LoginActivity.class);
mBuilder.setContentIntent(PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
但是 LoginActivity 不再在堆栈上(它已完成),因此 android 将启动它的一个新实例。所以碰巧有整个应用程序的两个实例。历史:
(1) Login -> Main
(2) Main -> (Click on notification) -> Login -> Main
(3) Main -> Main -> (go back)
(4) Main
由于 LoginActivity 是我的应用程序的入口点,我无法将通知点击路由到 MainActivity。相反,我希望应用程序完全重启。这可能吗?喜欢:
(2) Main -> (Click on notification) -> Login -> Main
(3) Main
【问题讨论】: