问题标签 [activity-state]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
540 浏览

android - onSaveInstanceState 是否应该保存视图的“启用”?

我有一个偏好活动,我可以在其中更改应用程序的语言和主题。从那里我通过返回键返回到上一个活动,我想重新创建活动。

我已经设法通过重新初始化布局onResumeonRestoreInstanceState从那里调用来做到这一点。所有视图都已正确恢复,如果需要检查复选框,edittexts 填充了我之前留在那里的文本。

但我也有一个最初被禁用的按钮,只有在选中单选按钮时才会启用。它的问题如下:我检查了单选按钮,按钮变为启用状态。然后我转到设置,在那里更改主题,然后返回第一个活动。当我到达那里时,单选按钮恢复为选中状态,但该按钮被禁用。

所以似乎启用/禁用状态没有保存到包中,这似乎违反直觉。而且我也没有在 Android 源代码中找到任何执行此操作的代码。我错过了什么,还是我必须为此编写自己的代码?

编辑:顺便说一句,仅为具有 id 的视图保存状态。而且那个按钮确实有一个,我保证:)

0 投票
1 回答
2077 浏览

android - onActivityResult 在 onDestroy 之后不再被调用

onActivityResult 让我很头疼。我的小游戏有一个标题/菜单屏幕。单击“新游戏”后,将启动一个 Activity,为我的游戏世界创建一个 SurfaceView。

玩的时候,玩家可以进入游戏世界中的建筑。进入建筑物后,我从我的 SurfaveView 启动该特定建筑物的活动。这是一个例子:

mMinerClass 是在游戏 Activity onCreate 中定义的:

mMap 是 SurfaceView。我正在传递一个包含播放器状态的包。在 onActivityResult 我抓取商店活动返回的捆绑包并更新播放器状态。

mSavedPlayer 稍后用于设置新的播放器状态。

以上所有工作一般

我可以进入商店、买东西、离开,并且播放器会正确更新。

当我按下主页按钮(或某些返回按钮)并调用 onDestroy 时,问题就显现出来了。我的 onDestroy 方法除了调用 super.onDestroy(); 之外什么都不做。

在 onDestroy() 被调用后 onActivityResult 不再被调用。

所以:

1)我玩游戏,一切都很好。

2)我按home键并调用ondestroy

3) 通过启动器图标重新启动我的游戏

4) 恢复游戏。我仍然可以进出商店,但不再调用 onActivityResult。

这是一些 logcat 输出。每次输入相关方法时,我都会记录。

我是用手机发这个的,所以请原谅任何愚蠢的错别字。

我很感激你们能提供的任何见解。谢谢!

0 投票
0 回答
994 浏览

java - 如何使用 onSaveInstanceState() 和 onRestoreInstanceState() 保存和恢复多维数组?

如何使用 onSaveInstanceState() 和 onRestoreInstanceState() 保存和恢复多维数组?

我正在使用 ExpandableListView。我有以下团体和孩子。

我得到了以下 java.lang.ClassCastException 异常。

01-19 17:12:55.417:E/AndroidRuntime(708):原因:java.lang.RuntimeException:无法启动活动 ComponentInfo{com.abc.myapp/com.abc.myapp.mylistActivity}:java.lang。 ClassCastException:[Ljava.lang.Object;

01-19 17:12:55.417: E/AndroidRuntime(708): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)

01-19 17:12:55.417: E/AndroidRuntime(708): 在 android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)

01-19 17:12:55.417: E/AndroidRuntime(708): 在 android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)

01-19 17:12:55.417: E/AndroidRuntime(708): 在 android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)

01-19 17:12:55.417: E/AndroidRuntime(708): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

01-19 17:12:55.417: E/AndroidRuntime(708): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

01-19 17:12:55.417: E/AndroidRuntime(708): ... 11 更多 01-19 17:12:55.417: E/AndroidRuntime(708): 由: java.lang.ClassCastException: [Ljava.lang 。目的; 01-19 17:12:55.417: E/AndroidRuntime(708): 在 com.abc.myapp.mylistActivity.onRestoreInstanceState(JobInfo.java:303)

01-19 17:12:55.417: E/AndroidRuntime(708): 在 android.app.Activity.performRestoreInstanceState(Activity.java:815)

01-19 17:12:55.417: E/AndroidRuntime(708): 在 android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1096)

01-19 17:12:55.417: E/AndroidRuntime(708): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2641)

01-19 17:12:55.417: E/AndroidRuntime(708): ... 19 更多

有没有办法存储和检索多维数组?

0 投票
1 回答
907 浏览

android - 应用主题后Android保存应用程序状态

我创建了一个应用程序,我可以通过单击按钮在 2 个主题(黑色和白色)之间切换。我在清单中将默认主题设置为白色。

所以每次关闭并重新启动应用程序时,都不会保存主题状态,而是应用白色主题。

如果可能的话,谁能给我一些想法或代码,关于如何保存应用程序的状态,不同的方法来做到这一点?

谢谢你。

0 投票
2 回答
461 浏览

android - 如何在android的后按时保持活动状态完整?

我是安卓新手。根据制作活动启动模式 singleTop 的 Android 开发人员文档,它将保持该活动完整。但它对我不起作用。我有一个活动,我有一个倒数计时器,我想要的是当我离开那个活动并返回到那个倒数计时器应该仍然运行的活动时。怎么做 ?请帮忙

0 投票
1 回答
113 浏览

android - 实施类似于“不保留活动”的行为

在我的应用程序中有一个场景,它可以无限地进行活动 a-> 活动 b-> 活动 a-> 活动 b...,最终它会得到 OOM。

有没有人知道一种使它像“不保留活动”行为的方法,例如活动将被杀死以释放内存但仍然在历史中,所以它可以在用户导航回来时重新创建?

0 投票
2 回答
689 浏览

android - 何时使用 saveInstanceState() 方法?

我知道saveInstanceState()用于存储活动变量、EditText 中的文本等。

但我怀疑我应该保存视图状态吗?

让我给你一个场景。我的视图有 3 个按钮。单击其中一个时,会向用户显示一个 WebView(在同一活动中)。现在,如果应用程序被杀死,我是否应该保存当应用程序被杀死时用户显示 WebView 以及重新创建活动时显示 WebView 而不是按钮的状态?

其他情况是,我有 3 个选项卡在视图中。选择每个选项卡会显示不同的视图。如上例所述,我是否应该保存该用户最后一次选择此选项卡?

如果你能解释我应该和不应该保存活动状态的情况,那将是最好的。

0 投票
7 回答
22205 浏览

android - 检测进入后台的android应用程序

当我的应用程序“进入后台”/“变为非活动状态”时,我需要关闭蓝牙。

我试图在我的 MainActivity 的 onPause() 中执行此操作,但这不起作用,因为现在 BT 关闭(Mainactivity 的 onPause() 被触发)即使我开始一个新的活动,显示来自 Mainactivity 的所选项目的实体详细信息.

我需要的是我的应用程序的某种“onPause()”,而不是单个活动。

我认为没有这样的东西存在,所以有什么更好的解决方案吗?

0 投票
1 回答
330 浏览

android - Android,我怎样才能获得最后的活动状态?

我有一个one.xml文件:

然后我有这样的two.xml文件

当我使用充气机单击按钮时,我可以在 one.xml 中添加 two.xml。没有问题。但是当我点击手机后退按钮或退出所有活动然后重新进入时,添加视图消失了。我怎样才能获得最后的活动状态?所有的身份证?

这是我点击按钮的代码。

0 投票
1 回答
186 浏览

android - 保持活动状态,控制权传递到下一个活动后,用于返回按钮遍历

OnClicking ListView Fragment 中的一个项目,控制权传递给 Detail Activity,该 Activity 下载与该项目相关的数据并为该 Activity 中的视图分页器设置适当的适配器。在该 Activity 中,如果用户单击图像,则会启动一个 FullScreen Activity它以全屏显示此特定图像。

现在我的问题是:当用户通过点击关闭图标或后退按钮遍历离开这个全屏活动时,我如何重用详细活动数据(之前为此项目下载)而不是再次下载。解决方案也应该适用于当用户单击详细活动上的新项目时的场景,应该开始为该项目下载数据。

不想使用 SQLLite、FileSystem 进行存储。在 ListView 中单击项目时,我可以下载数据,但当用户从全屏活动返回时,我可以下载数据