【问题标题】:How to avoid home screen loading before opening startup app in Android?如何在 Android 中打开启动应用程序之前避免主屏幕加载?
【发布时间】:2013-07-16 19:42:33
【问题描述】:

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

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

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

帮助表示赞赏!

编辑:例如,this app 使用时会出现同样的问题:自动启动的应用程序出现在主屏幕之后。

【问题讨论】:

  • 此应用是为公开发布还是供内部使用?
  • 为什么?就这里的可行情况而言,这会发生什么变化?
  • 我只是对这样的应用感到好奇,为什么开发者看起来如此难以打破潜在的用户体验,这就是我在评论中发帖的原因,如果我惹恼了你,请见谅。
  • 不,我没有生气,只是希望您知道一些可以提供帮助的信息。理想情况下,这是用户可以看到一次,然后如果他们不想要就禁用它 - 我只希望看到这个屏幕的第一次体验是无缝的。
  • 你找到解决办法了吗?

标签: android android-intent homescreen


【解决方案1】:

终于找到了解决办法,而且很简单。

您所要做的就是将这些行添加到您的 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 系统会询问您是否要将应用作为主屏幕。

希望它对你有用。

【讨论】:

    【解决方案2】:

    将这两行添加到您现有的启动活动中,通常是 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-23
      • 2021-10-29
      • 1970-01-01
      • 2013-06-25
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多