- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 android 开发的新手,我需要一些帮助来保存 Activity 的状态。从 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 不应该阻止它创建新 Activity 吗?我猜它认为它必须创建一个新的,因为我要发送一些字符串?
更好的是,只要字符串相同,我如何检查 Activity 是否已在堆栈中并切换到它? -- 当用户从 ListView 中单击媒体项时,我将开始此 Activity 。[/编辑]
最佳答案
出于某种原因,这并没有用非常非常大胆的 NEON 闪烁字母记录下来,我花了一段时间才发现,但是如果你只是用 android:launchMode=["多个"| “单顶” | “单任务” | “单一实例”]属性设置为“singleInstance”。
那么它只有一个实例,只要 Activity 没有被垃圾回收,您的内存字段就会被保留下来。
您可以做的另一件事是创建一个应用程序(从应用程序扩展)并将所有持久对象存储在其中......就您的整个应用程序的生命周期而言(包括您所有的无 Activity 服务)。
只需创建一个 Application 类并在您的 list 中指定它,如下所示:
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:name=".MyApplication">
然后,如果您仍然真的想在应用程序将要关闭的情况下保存您的值,只需使用 SharedPreferences。
关于android - onPause/onRestore 与 savedInstanceState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5784260/
我从这个链接安装了示例 BackupRestore。 https://android.googlesource.com/platform/development/+/0b3758ea4e53f9bfd
我是 android 开发的新手,我需要一些帮助来保存 Activity 的状态。从 onPause 保存实例并从 onRestore 恢复实例的正确方法是什么,因为显然 Android 不会像使用
我想要备份和恢复我的 Android 应用程序中的一些数据。为此,我创建了 BackupAgent 的自定义实现。 在我的 list 中包含了备份代理,如下所示 我已经包
我正在测试我的自定义 BackupAgent。下面是我在Simulator & Eclipse ADT中的测试 使用命令 ---- WORK WELL 测试 1 备份和恢复 启用 adb shell
我有一个带有回调实现的 MainActivity: DrawerListFragment.Callback ItemListFragment.Callbacks SearchView.OnQueryT
我是一名优秀的程序员,十分优秀!