3

我有一个应用程序,我想将其作为用户在 Android 设备上启动后看到的第一个屏幕。目前,应用程序会侦听android.intent.action.BOOT_COMPLETED并自动启动(如此所述)。一切都很好。

问题是,在我的应用程序启动之前,几乎总是可以看到主屏幕一秒钟。我知道我可以用自己的启动器应用程序替换,但我的目标是在不干扰用户选择自定义启动器的情况下呈现这个初始欢迎屏幕。(我知道将屏幕强加给用户的 UX 问题,现在我只是在研究可​​能的情况。)

所以我的问题是:有没有办法做到这一点?也许是为了中断主屏幕的第一次启动,或者确保我的应用程序首先出现?如果没有,是否可以创建一个启动器应用程序,仅在启动时显示此屏幕,然后重定向到用户选择的启动器或主应用程序?我的预感是接收Intent.CATEGORY_LAUNCHER类别,显示屏幕(如果还没有),或者如果没有发送另一个意图来打开真正的启动器......我再次不确定这是否可能。

帮助表示赞赏!

编辑:例如,如果使用这个应用程序有同样的问题:自动启动的应用程序出现在主屏幕之后。

4

2 回答 2

4

终于找到了解决方案,而且很简单。

您所要做的就是将这些行添加到您的 AndroidManifest 接收器中:

 <receiver android:name="com.dannywind.delphi.BootReceiver"
                  android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
           <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                 <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.HOME"/>
                <category android:name="android.intent.category.DEFAULT"/>
          </intent-filter>
        </receiver>

然后下次你打开你的应用程序时,Android 系统会询问你是否要让应用程序成为你的主屏幕。

希望对你有效。

于 2014-05-08T18:07:06.147 回答
1

将这两行添加到您现有的启动活动中,通常是 MainActivity,intent-filter。

  <category android:name="android.intent.category.HOME"/>
  <category android:name="android.intent.category.DEFAULT"/>

应该看起来像下面的例子......

    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
于 2021-05-03T23:06:27.780 回答