如何自动启动Android应用程序?

Raj*_*ian 50 android

在android模拟器完成启动后,我不确定如何自动启动Android应用程序.有没有人有任何代码片段可以帮助我?

Krz*_*lny 46

您必须添加清单权限条目:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Run Code Online (Sandbox Code Playgroud)

(当然,您应该列出您的应用使用的所有其他权限).

然后,实现BroadcastReceiver类,它应该是简单快速的可执行文件.最好的方法是在此接收器中设置一个警报以唤醒您的服务(如果没有必要像Prahast写的那样保持它运行).

public class BootUpReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    PendingIntent pi = PendingIntent.getService(context, 0, new Intent(context, MyService.class), PendingIntent.FLAG_UPDATE_CURRENT);
    am.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + interval, interval, pi);
}}
Run Code Online (Sandbox Code Playgroud)

然后,将Receiver类添加到清单文件中:

    <receiver android:enabled="true" android:name=".receivers.BootUpReceiver"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)


san*_*ndy 24

编辑您 AndroidManifest.xml的添加RECEIVE_BOOT_COMPLETED权限

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Run Code Online (Sandbox Code Playgroud)

编辑您的 AndroidManifest.xml应用程序部分以获得以下权限

<receiver android:enabled="true" android:name=".BootUpReceiver"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
 </receiver>
Run Code Online (Sandbox Code Playgroud)

现在写下面的Activity.

public class BootUpReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
    Intent i = new Intent(context, MyActivity.class);  
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(i);  
}
}
Run Code Online (Sandbox Code Playgroud)


Pra*_*ast 12

如果通过自动启动你的意思是手机启动时自动启动,那么你应该为BOOT_COMPLETEDIntent 注册一个BroadcastReceiver .一旦启动完成,Android系统就会广播该意图.

一旦收到该意图,您就可以启动一个可以执行任何操作的服务.

请注意,尽管在手机上一直运行服务通常是一个坏主意,因为它即使在空闲时也会占用系统资源.您应该仅在需要时启动服务/应用程序,然后在不需要时停止它.