gpt4 book ai didi

android - 在 BackPressed 上恢复之前的 Activity

转载 作者:行者123 更新时间:2023-11-29 21:06:07 26 4
gpt4 key购买 nike

我的项目中有两个 Activity 。 A 和 B,当用户单击 Activity A 中的按钮时,我正在打开 Activity B

A ---> B

当用户点击后退按钮时,应用返回 Activity A

一个

在这个 Activity 中,我有一个名为“Resume”的按钮,我想在不丢失任何东西的情况下返回到 Activity B。可能吗?

A ----> B(旧状态)

谢谢。

在 Activity A中

 Intent go = new Intent(this,ActivityB.class);
go.putExtra("type", 1);
startActivity(go);

Activity B 中的后退按钮点击事件

  if(v.getId() == R.id.back)
super.onBackPressed();

Resume Button in Activity A (should resume activity B) ,这段代码可能是错误的

 Intent go = new Intent(this,ActivityB.class);
startActivity(go);

和 list 文件,

      <activity
android:name="ActivityB"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="ActivityA"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

最佳答案

试试这个:

在你的 list 中,

<activity
android:label="@string/app_name" android:name="ActivityB"
android:launchMode="singleTop" >

并且在返回时不要在 Activity B 上调用 finish()。所以它应该恢复正在运行的 Activity B 的旧实例。

Reference

所以现在只有在没有任何实例的情况下,才会创建“singleTop” Activity 的新实例来处理新的 Intent 。但是,如果目标任务在其堆栈顶部已有该 Activity 的现有实例,则该实例将接收新 Intent (在 onNewIntent() 调用中);未创建新实例。

编辑:

这段代码对我有用:

MainActivity 中:

//Go button's onClick
public void goToSecond(View v) {

Intent go = new Intent(this, ChildActivity.class);
startActivity(go);
}

//Resume button's onClick
public void resumeSecond(View v) {

Intent go = new Intent(this, ChildActivity.class);
startActivity(go);
}

ChildActivity 中:

//Back button's onClick
public void goback(View v) {
// onBackPressed();
Intent go = new Intent(this, MainActivity.class);
startActivity(go);
}

在 list 中:

<activity
android:name="com.example.testingproj.ChildActivity"
android:label="@string/app_name"
android:launchMode="singleTask" >

此时,ChildActivityonCreate() 在我点击 Go 按钮时被调用。如果我点击 Resume 按钮,它不会重新创建。

关于android - 在 BackPressed 上恢复之前的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24508804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com