如何在启动时启动/启动应用程序 Android
Posted
技术标签:
【中文标题】如何在启动时启动/启动应用程序 Android【英文标题】:How to start/ launch application at boot time Android 【发布时间】:2012-05-12 19:10:09 【问题描述】:我想在我的平板电脑启动时启动我的应用,以便我的应用的主要活动是用户在启动平板电脑时看到的第一件事。 我已阅读有关 LauncherActivity 的信息,但我不明白如何使用它。 任何人都可以为此提供建议、链接或教程吗? LauncherActivity 是最好的方法还是有替代方法?
【问题讨论】:
我正在寻找类似的功能,如果你成功了,请与我分享代码。 【参考方案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 版,则必须从应用设置中取消选择(限制启动)。
设置>应用>你的应用>限制启动(取消选择)
请看图。
【讨论】:
以上是关于如何在启动时启动/启动应用程序 Android的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PhoneGap 应用启动时启动 Android 活动?
在 Android 应用冷启动时,阻止网络请求,直到 *** 启动