[更新如下]
我有多个活动的应用程序。我在处理从点击通知项目开始的活动时遇到问题。
以下是应用结构:
然而,问题在于通过点击通知启动活动。以下是流程:
在这方面的任何指示将不胜感激。
[UPDATE]:
奇怪但是,这就是现在正在发生的事情。 1.重写活动B中的onBackPressed事件。 2.在此方法中,调用finish()。
如果应用程序已在运行并且单击通知,则显示活动B,然后在按下时,活动B结束。但是,如果应用程序未运行,则通知单击将启动活动B,然后在按下时,它会调用backpress事件和finish()方法,但活动未完成并进入后台。这真的很奇怪。或者可能是我错过了一些细节:((
由于 Shrey
答案 0 :(得分:1)
覆盖onBackPressed()
。
@Override
public void onBackPressed()
{
finish();
super.onBackPressed();
}
但是,如果他/她从最近的应用程序启动您的应用程序,用户可以直接进入活动B.为避免这种情况,请在下方添加到清单中的ActivityB
。如果您从此处导航到ActivityC
,则在ActivityC中按回不会返回到ActivtyB,因此override onBackPressed()
会通过Intent
重新启动ActivityB。
<activity
android:name="ActivityB"
android:clearTaskOnLaunch="true"
android:excludeFromRecents="true"
android:finishOnTaskLaunch="true"
android:noHistory="true"/>
答案 1 :(得分:0)
遵循以下流程: -
1-在活动A的oncreate()中检查isLauchFrom。
2-如果isLaunchFrom Notification,则使用startActivityFor Result导航活动B.
希望这会对您有所帮助,如果有任何混淆发送评论。
答案 2 :(得分:-1)
@Override
public void onBackPressed() {
Intent returnIntent = new Intent(B.this,A.class);
B.this.finish();
startActivity(returnIntent);
}
试试这个