加载活动需要每次运行

时间:2012-10-06 00:19:54

标签: android android-activity android-lifecycle

所以每次用户打开程序时都需要加载一个加载活动。我将加载活动作为清单中的主要活动。如果加载活动成功,则会启动HomeActivity。如果我从HomeActivity点击后退按钮,当我再次尝试访问应用程序时,它将触发LoadingActivity。如果我从HomeActivity点击主页按钮,则启动它会返回到HomeActivity,而无需转到LoadingActivity。

我尝试过添加那些,clearTaskOnLaunch和FinishOnTaskLaunch。我试过捕捉主页按钮,这是行不通的。我无法完成onPause或onStop,因为HomeActivity启动了一个在HomeActivity之上打开的活动,然后再回到它。关于该怎么做的任何想法?继承人清单,仍在学习安卓机器清单,所以不要杀了我。

<activity
        android:name=".start.LoadingActivity"
        android:screenOrientation="portrait" 
        android:clearTaskOnLaunch="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".HomeActivity"
        android:label="@string/title_activity_home"
        android:screenOrientation="nosensor" 
        >
    </activity>

1 个答案:

答案 0 :(得分:0)

主页按钮默认功能是在不杀死活动的情况下进入主屏幕。 Android用户希望在按下主页按钮后返回应用程序时找到他们所在的屏幕。所以我建议你改变你的设计。但是如果你必须按照自己的方式去做,这是你可以使用的一个逻辑。

每次启动主活动时,在共享首选项中设置一个标志,例如from_main = true。然后,在onPause for main活动中,检查from_main是否为true。如果是真的,请调用finish()。如果没有,请不要做任何事情。

现在,当您从主活动中启动另一个活动时,将共享首选项中的标志from_main设置为false。

这样,你现在可以在从main启动其他活动之前或启动它之后调用onPause。如果是在启动它之前,那么它将无法完成主,你可以退回到它。如果是在启动它之后,那么它将完成主要活动。