我正在开发一个Android启动器主屏幕应用程序,每当我将正在开发的应用程序设置为默认启动器时,它会在主屏幕上显示我的启动器,而不是之前设置的默认启动器。
我想使用系统背景,所以我的主屏幕应用程序的主要活动有一个透明的背景,但我不希望它坐在前面的启动器的UI(OneUI)的顶部。
我的应用程序清单中是否应该有一个activity标签,或者是确保以前设置的启动器不再运行的东西?感谢您的任何帮助!
example outcome
我已经研究了如何在Android上关闭其他任务,但我的应用没有权限。我不知道如何从我的透明默认启动器下的UI中删除其他应用程序。
这是清单中的当前Activity:
<activity
android:launchMode="singleTask"
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</activity>
1条答案
按热度按时间wj8zmpe11#
要将应用程序设置为默认启动器并确保它替换主屏幕上先前设置的启动器,您可以使用用于启动主Activity的
Intent
中的CLEAR_TOP
标志。此标志将清除目标应用程序的Activity堆栈,删除所有以前打开的Activity。下面是一个示例,说明如何修改
MainActivity
以实现此目的:isMyLauncherDefault()
方法用于检查您的应用程序是否已设置为默认启动器。您可以按如下方式实现它:此代码将检查您的应用程序是否已经是默认启动器。如果不是,它将创建一个带有
CLEAR_TOP
标志的Intent
,并启动意图,将您的启动器带到前面,有效地替换以前的启动器。调用finish()
方法以确保从堆栈中移除前一个启动器的Activity。请记住将
MainActivity
替换为启动器的主活动类的正确名称。通过使用这种方法,您的启动器将被设置为默认值,并将取代主屏幕上的前一个启动器。