我正在开发一个Android应用程序。它会收到推送通知。我想在用户打开通知时打开活动P.
我的应用程序具有以下活动层次结构:
现在,当我收到推送通知并打开它时,我想打开活动P.但我也希望当活动P启动并且用户按下时,它应该转到F31。因为P的父亲是F31。
当用户打开推送通知时,我的应用程序可以处于任何状态。我的意思是用户可以在F1或F2或F3。但是当用户打开推送通知时,它应该启动活动P,然后按下它应该转到F31。 它应该忽略应用程序的先前状态。
我可以通过推送通知启动活动P,但我不知道如何保证在背面按下它将落在F31上。
请建议我该怎么办?
答案 0 :(得分:1)
尝试将其放在活动P:
上@Override
public void onBackPressed() {
Intent intent = new Intent(this, M.class);
intent.putExtra("key", "goToF31");
startActivity(intent);
}
活动F onCreate
内的第一件事:
String signal = getIntent().getStringExtra("key");
if (signal.equals("goToF31")) {
// open the F31 fragment
F31 f31 = new F31();
fm.beginTransaction().replace(R.id.mainContainer, f31).commit();
}
当suer点击打开活动F和片段F31的视频活动内的后退按钮时,逻辑被置于意图之中。 这可能有用,但为了感觉正确,你必须把动画看起来像它回去了。
答案 1 :(得分:0)
如果你正在使用PendingIntent试试这个----
// Use TaskStackBuilder to build the back stack and get the PendingIntent
PendingIntent pendingIntent =
TaskStackBuilder.create(this)
// add all of DetailsActivity's parents to the stack,
// followed by DetailsActivity itself
.addNextIntentWithParentStack(upIntent)
.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);