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_COMPLETED
Intent 注册一个BroadcastReceiver .一旦启动完成,Android系统就会广播该意图.
一旦收到该意图,您就可以启动一个可以执行任何操作的服务.
请注意,尽管在手机上一直运行服务通常是一个坏主意,因为它即使在空闲时也会占用系统资源.您应该仅在需要时启动服务/应用程序,然后在不需要时停止它.
归档时间: |
|
查看次数: |
106787 次 |
最近记录: |