android – onPause/onRestore with savedInstanceState

我对 Android开发很新,我需要一些帮助来保存活动的状态.
从onPause保存实例并从onRestore恢复实例的正确方法是什么,因为很明显Android并没有像onCreate或onSaveInstanceState那样发送savedInstanceState Bundle.或者除了使用savedInstanceState包之外还有更好的方法来保存吗?

这有意义吗?

[编辑]
好吧,我想我知道我的真正问题是什么……但首先,我认为我所寻找的是使用SharedPreferences而不是savedInstanceState.

所以,做更多的调试日志观察我注意到,而不是将Activity带到堆栈顶部,而是创建一个新的.是的,我意识到我正在创造一个新的….

Intent itemintent = new Intent(MediaList.this,AudioPlayer.class);

         Bundle b = new Bundle();
        //...putString some strings to send
         itemintent.putExtra("android.intent.extra.INTENT",b);
         itemintent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
         startActivityForResult(itemintent,0);

…但FLAG_ACTIVITY_REORDER_TO_FRONT不应该阻止它创建新活动吗?我猜它认为它必须创建一个新的,因为我发送一些字符串?

更好的是,我如何检查活动是否已经在堆栈中并且只要字符串相同就切换到它? – 当用户从列表视图中单击媒体项时,我正在启动此活动.
[/编辑]

解决方法

出于某种原因,这并没有在非常大胆的霓虹闪烁字母中记录,并且花了我一段时间才发现,但是如果你只是用它来创建它,你不需要担心你的活动是否存在.
android:launchMode = [“multiple”| “singletop”|
“singleTask”| “singleInstance”]
属性设置为“singleInstance”.

然后只有它的一个实例,只要活动没有被垃圾收集,你的内存字段就会被保留.

您可以做的另一件事是创建一个Application(从Application扩展)并将所有持久对象存储在其中…它首先被创建并在整个应用程序的生命周期中被销毁(包括您的所有活动) – 无服务).

只需创建一个Application类并在清单中指定它,如下所示:

<application android:icon="@drawable/icon" android:label="@string/app_name"
    android:name=".MyApplication">

然后,如果您仍然希望在应用程序将要关闭的情况下保存您的值,请使用SharedPreferences.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...