我想在我的平板电脑启动时启动我的应用程序,以便我的应用程序的主要活动是用户在启动平板电脑时看到的第一件事。
我读过有关LauncherActivity的内容,但我不了解如何使用它
任何人都可以帮我提供建议,链接或教程吗?
LauncherActivity是最好的方式还是有替代方案?
答案 0 :(得分:76)
这些代码行可能对您有所帮助......
第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);
}
}
答案 1 :(得分:12)
如果您想在平板电脑启动时启动应用,则需要收听BOOT_COMPLETED操作并对其做出反应。 BOOT_COMPLETED是一个广播动作,在系统完成引导后广播一次。您可以通过创建BroadcastReceiver来监听此操作,然后在收到具有BOOT_COMPLETED操作的意图时启动您的启动活动。
将此权限添加到您的清单:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
在项目中创建自定义BroadcastReceiver:
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 :(得分:4)
@vishesh chandra的回答是正确的。但是在某些设备上无法正常工作,因为默认情况下app安装在外部存储上。请确保您指定
android:installLocation="internalOnly"
否则,如果应用程序安装在SD卡中,您将不会收到任何引导完成操作。将它添加到manifest.xml文件中的application标签中,它将起作用。
<强>用法:强>
<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>
答案 3 :(得分:1)