0

我有以下问题,我想设计实现以确保不会遇到任何问题。

在应用程序启动时,我需要执行一个(并且只有一个)服务器请求以使手机保持最新状态。然后我进入主要活动。

我最大的问题是 Android 的后退按钮,它可能会将我的堆栈带回第一个活动,即进行服务器同步的活动。

我想到了以下实现:

  1. 我立即启动了主要活动
  2. onCreate()MainActivity中,我启动了同步过程...带有一些背景徽标、进度条等...
  3. 同步完成后,我finish()在我的Activity.

然后我会返回onCreate(),还是直接返回onResume()main Activity?这个实现有意义吗?

4

2 回答 2

0

您可以继续执行相同的操作,但对于执行同步操作的第一个活动,将其设为 noHistory 任务。http://developer.android.com/guide/topics/manifest/activity-element.html#nohist

或者在您的第一个活动中,在您调用后,startActivity(MainActivity)您可以调用 finish() 并通过这样做,您的 FirstActivity 将从后台堆栈中删除,然后 MainActivity 将保留在堆栈顶部。

希望有帮助。

更新

我的意思是,让FirstActivity成为你的第一个活动,你MainActivityFirstActivity. 在你调用startActivity()你的之后FirstActivity,调用finish()下一个语句。这是完全可以接受的。

于 2012-10-22T10:38:35.750 回答
0

更新

为了防止您的第一个Activity被再次查看,您只需将以下行添加到您的Activity声明中

<activity 
        android:name=".FirstActivity"
        android:noHistory="true" /> 

使用noHistory标签将删除您的Activity,而无需您自己以编程方式进行

于 2012-10-22T10:34:13.237 回答