在app后台运行,然后重新启动手机时才可以监听到启动事件,如果将后台服务杀死后重启手机无效!!!
首先,在app的配置页面加入权限
AndroidManifest.xml:
此外,在您的AndroidManifest.xml,定义一个广播,监听开机事件:
在广播中,加入监听后的操作。
完毕。
首先,在app的配置页面加入权限
AndroidManifest.xml:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
此外,在您的AndroidManifest.xml,定义一个广播,监听开机事件:
<receiver
android:name=".receiver.StartMyServiceAtBootReceiver"
android:label="StartMyServiceAtBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
在广播中,加入监听后的操作。
public class StartMyServiceAtBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
//跳转到服务
Intent serviceIntent = new Intent(context, MyService.class);
context.startService(serviceIntent);
//跳转到活动
// Intent i = new Intent( );
// i.setAction("com.pactera.audostartapplication");
// i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //此句必须加上!
// context.startActivity(i);
//亲测可用
//AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
//PendingIntent pi = PendingIntent.getService(context, 0, new Intent(context, SlptClockService.class), PendingIntent.FLAG_UPDATE_CURRENT);
//am.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 0, 10000, pi);
}
}
}
服务中启动活动
public class SlptClockService extends Service {
public SlptClockService() {
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Intent intent_n = new Intent(this,
MainActivity.class);
intent_n.setAction("android.intent.action.MAIN");
intent_n.addCategory("android.intent.category.LAUNCHER");
intent_n.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent_n);
return START_STICKY;
}
}
完毕。