Android:如何始终从特定 Activity 启动应用程序?

标签 android android-activity widget

我有一个 Activity Alert,它在 list 中定义如下:

        <activity android:name="Alert"
              android:label="@string/app_name"
              android:theme="@android:style/Theme.Dialog"
              android:launchMode="singleInstance"
              android:noHistory="true">
    </activity>

我还有另一个 Activity Config,它是主屏幕小部件的设置页面,定义为

        <activity android:name=".Config"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

Alert Activity 在用户单击小部件时显示。现在我的问题是,在运行应用程序并返回主屏幕后,当我长按主页键并选择应用程序时,会显示 Alert Activity 。有没有一种方法可以防止这种情况发生并始终从 Config Activity 开始?

最佳答案

要说明这个问题,您应该了解 Android 处理 Activity 的方式。当您按下“home”按钮时,您的Alert 被认为仍然alive,但它处于pause 模式。因此,当您长按时,它会切换回来,只是恢复您之前的最上面的 Activity ,在这种情况下是Alert

因此,您可以考虑在 Alert 的 onPause 事件中告诉 Android 结束 Activity 而不是暂停它。

关于Android:如何始终从特定 Activity 启动应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4201831/

相关文章:

qt - Qt中Qwidget的高度和宽度的度量单位是什么

qt - 根据 Qt 中的固定小部件调整视频大小

python - 配置独立的小部件(Tkinter ttk、Python)

android - 更改 ListView 项的文本颜色时出现 NullPointerException

android - 如何使水平进度条变细并更改内部进度条颜色

android - 是否可以将 Activity 和 fragment 与底部导航一起使用?

android - 在 Android 中启动新的 Activity 并完成当前的 Activity?

java - 如何让这段代码运行一次?

android - 我一次可以观察多少个 Stateflow?

java - 无法在 Android 上使用 AES 密码