如何退出活动并将其恢复到之前的状态?

Posted

技术标签:

【中文标题】如何退出活动并将其恢复到之前的状态?【英文标题】:How do I get out of an activity and restore it in exactly its previous state? 【发布时间】:2012-01-09 04:53:41 【问题描述】:

这是我的代码。它只涉及 2 个按钮和一个在按下按钮时上下移动的数字计数器(整数值和文本大小)。此活动是遵循该流程的更大应用程序的一部分: 1.闪屏 2.列表菜单 3. 菜单中选择的活动(有3个选项,计数器是其中之一)

当我按下后退按钮时,它会返回到列表菜单,当我单击整数计数器选项时,我希望它完全恢复原样 关于我如何做到这一点的任何想法? 谢谢!

public class StartingPoint extends Activity 
/** Called when the activity is first created. */

int counter;
Button add;
Button sub;
TextView display;

@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    counter=0;

    add= (Button) findViewById(R.id.bAdd);
    sub= (Button) findViewById(R.id.bSub);
    display= (TextView) findViewById(R.id.tvDisplay);

    add.setOnClickListener(new View.OnClickListener() 

        @Override
        public void onClick(View v) 
            // TODO Auto-generated method stub
            counter++;
            display.setText(""+counter);
            display.setTextSize(counter);
        
    );
    sub.setOnClickListener(new View.OnClickListener() 

        @Override
        public void onClick(View v) 
            // TODO Auto-generated method stub
            counter--;
            display.setText(""+counter);
            display.setTextSize(counter);
        
    );


【问题讨论】:

【参考方案1】:

你有两个不错的选择:

要么使用 SharedPreferences 来存储你的变量 onStop() 并加载它 onStart() - How to use SharedPreferences in android to store, fetch and edit values;

或者,如果它只是一个整数,您可以使用 startActivityForResult 方法来实例化您的整数计数器活动并从活动中捕获结果,如Android: Capturing the return of an activity 中所述。

希望对你有帮助!

【讨论】:

您还可以使用静态数据、文件系统或数据库。 是的。在我看来,那些对我来说是最直接的,但你建议的那些也是完全可行的。 如果我在 onStop() 上使用了 sharedpreferences,然后我使用 taskkiller 或其他什么东西退出了应用程序...是否会删除使用 sharedpreferences 存储的数据? 没有。引用developer.android.com/guide/topics/data/data-storage.html#pref,“SharedPreferences 类提供了一个通用框架,允许您保存和检索原始数据类型的持久键值对。您可以使用 SharedPreferences 保存任何原始数据:布尔值、浮点数、整数、长整数和字符串。这些数据将在用户会话中持续存在(即使您的应用程序被终止)。"

以上是关于如何退出活动并将其恢复到之前的状态?的主要内容,如果未能解决你的问题,请参考以下文章

如何回到出厂设置

Android - 恢复上次查看的活动

游戏从后台快速恢复后退出暂停状态

Android阻止恢复活动

Android - 恢复上次查看的活动

恢复用户图像后,如何将其保存在 Drawable 中