我无法了解如何在开发过程中维护Android应用的状态。
为了澄清,我不是在谈论维持活动状态(即跟踪特定活动的文本框值,复选框等)。
比方说,我的应用程序有两个活动A
和B
。当我启动我的应用时,我需要进行A
活动,按下按钮会转到B
。此时,我按下手机上的主页按钮返回主Android UI并退出我的应用程序。但是,如果我选择再次运行我的应用程序,则应该让我进行B
活动,这是我在按住主页按钮之前停止的地方,而是将我带到活动A
。
有谁知道如何纠正这个问题?
(如果你需要知道,我正在使用三星Vibrant)
答案 0 :(得分:4)
“但是,如果我选择再次运行我的应用程序,它应该带我去活动B,这是我在按下主页按钮之前离开的地方,但它转而带我去活动A.”
是的,它应该。如果不是,您已在应用中做了一些事情来告诉平台修改其行为。 (以ApiDemos为例,它使用标准行为,这听起来就像你所描述的那样。)
需要注意的事项:
答案 1 :(得分:1)
你在想象有一种叫做“应用程序”的东西,但这是一种错觉。您的应用程序只是活动,服务,接收器等的集合。
如果您查看清单中的intent-filter
标记,您会看到主屏幕中的每个图标都与这样的过滤器相关联:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
您可以在两个活动中放置相同的XML块,并且您将在主屏幕中获得两个图标,一个始终启动活动A,另一个始终启动活动B.
您可能想要做的是创建一个主活动,根据共享状态启动其他活动之一。
至于实际存储共享状态的位置,这取决于您的状态有多复杂。这是一个很好的起点:http://developer.android.com/guide/topics/data/data-storage.html
答案 2 :(得分:0)
我理解你想要启动你的应用程序的问题,每次都会发生不同的事情,这取决于你最后一次离开的地方。 http://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html活动生命周期在链接中。你的onActivityDestroyed方法需要以某种方式持久保存当前状态,而oncreate需要将其恢复。持久性可以通过共享首选项实现,存储在文件,数据库或网络上http://developer.android.com/guide/topics/data/data-storage.html这种不可预测的行为如果实施不当可能会导致最终用户混淆,因此使用良好的判断。