【问题标题】:How to start/ launch application at boot time Android如何在启动时启动/启动应用程序 Android
【发布时间】:2012-05-12 19:10:09
【问题描述】:

我想在我的平板电脑启动时启动我的应用,以便我的应用的主要活动是用户在启动平板电脑时看到的第一件事。
我已阅读有关 LauncherActivity 的信息,但我不明白如何使用它。
任何人都可以为此提供建议、链接或教程吗?
LauncherActivity 是最好的方法还是有替代方法?

【问题讨论】:

  • 我正在寻找类似的功能,如果你成功了,请与我分享代码。

标签: android android-activity launcher launching-application


【解决方案1】:

这些代码行可能对你有帮助...

第一步:在AndroidManifest.xml中设置权限

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

第 2 步:在接收器中添加此意图过滤器

<receiver android:name=".BootReceiver">
    <intent-filter >
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>

第 3 步:现在您可以从 Receiver 类的 onReceive 方法启动应用程序的第一个活动

public class BootReceiver extends BroadcastReceiver {

   @Override
   public void onReceive(Context context, Intent intent) {
       Intent myIntent = new Intent(context, MainActivity.class);
       myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
       context.startActivity(myIntent);
   }

}

【讨论】:

  • 谢谢 vishesh,更重要的是,我的主要活动可以扩展 LauncherActivity 或只是 Activity?
  • 您可以使用 Receiver 代替,这样可以正常工作...检查新更新的代码行..
  • 是的,这将是您的主要活动。您的应用程序将从那里开始。
  • 如果我的帖子有用且清晰,请给我评分!!所以星期一我可以尝试这个解决方案,然后我接受一个回答;)
  • 更改您的标题,例如“如何在启动时启动/启动应用程序”...:-)
【解决方案2】:

如果您想在平板电脑启动时启动应用程序,您需要监听 BOOT_COMPLETED 操作并对其做出反应。 BOOT_COMPLETED 是一个广播动作,在系统完成启动后广播一次。您可以通过创建 BroadcastReceiver 来监听此操作,然后当它收到带有 BOOT_COMPLETED 操作的意图时启动您的启动 Activity。

将此权限添加到您的清单中:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

在您的项目中创建自定义广播接收器:

public class MyBroadCastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
            Intent i = new Intent(context, MyActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }
} 

然后通过将 BroadCastReceiver 添加到 Manifest 来修改您的清单文件:

<receiver android:name=".MyBroadcastReceiver">
    <intent-filter>
       <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

【讨论】:

  • 试过了,不起作用,在显示正常启动屏幕后,我的意图在大约 2 秒后被调用。
【解决方案3】:

@vishesh chandra 的回答是正确的。但在某些设备上不起作用,因为应用程序默认安装在外部存储上。请确保您指定

android:installLocation="internalOnly"

否则,如果应用程序安装在 SD 卡中,您将不会收到任何启动完成操作。将此添加到 manifest.xml 文件中的应用程序标记中,它将起作用。

用法:

<application
        android:name=".Data.ApplicationData"
        android:allowBackup="true"
        android:hardwareAccelerated="true"
        android:icon="@mipmap/ic_launcher"
        android:installLocation="internalOnly"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen">
        <!--activities, services...-->
</application>

【讨论】:

    【解决方案4】:

    我想在这个我面临几天的问题中补充一点。我尝试了所有答案,但这些对我不起作用。如果您使用的是 android 5.1 版,请更改这些设置。

    如果您使用的是 android 5.1 版,则必须从应用设置中取消选择(限制启动)。

    设置>应用>你的应用>限制启动(取消选择)

    请看图。

    【讨论】:

      猜你喜欢
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 2020-02-10
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      • 2015-10-28
      相关资源
      最近更新 更多