0

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

我已经尝试添加这些,clearTaskOnLaunch 和 FinishOnTaskLaunch。我已经尝试捕获主页按钮,但它不起作用。我无法完成 onPause 或 onStop,因为我让 HomeActivity 启动了一个在 HomeActivity 之上打开的活动,然后又回到它。关于做什么的任何想法?这是清单,仍在学习android清单的东西,所以不要杀了我。

<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>
4

1 回答 1

0

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

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

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

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

于 2012-10-06T01:35:09.220 回答