在Windows 平台下安装一些 软件 时,经常会遇到一些软件带有自启动设置。通常我会关掉这
些功能,除非对于某些重要的程序有必要开启这项功能。在 Android 平台也可以方便的给程
序添加自启动设置,下边给出了具体的实现方法:
首先需要在Manifest 中做如下修改和补充:
?
View Code 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>
程序主体中需要实现在Manifest 中声明的BroadcastReceiver 类:
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);
}
}
1. 定义一个BroadcastReceiver
代码:
public class BootReceiver extends BroadcastReceiver {
public void onReceive(Context ctx, Intent intent) {
Log.d("BootReceiver", "system boot completed");
//start activity
String action="android.intent.action.MAIN";
String category="android.intent.category.LAUNCHER";
Intent myi=new Intent(ctx,CustomDialog.class);
myi.setAction(action);
myi.addCategory(category);
myi.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(myi);
//start service
Intent s=new Intent(ctx,MyService.class);
ctx.startService(s);
}
}
2、配置Receiver 的许可,允许接收系统启动消息,在AndroidManifest.xml 中:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
3、配置Receiver,可以接收系统启动消息,在AndroidManifest.xml 中
<receiver android:name=".app.BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
4、启动模拟器,可以看到系统启动后,弹出一个对话框。
例一
如果您在 开发 一个需要实时更新数据的应用程序,当有新的数据的时候提醒用户查看新的数
据,那么您需要在后台开起一个Service,然后实时的去网络上获取数据,但是如果用户关
机重启,您的Service 可能就消失了!那么怎么样保证开机后你的Service 还活跃的在用户
的手机里偷偷的从网络上获取数据呢?
很简单,我们只要实现开机自启动即可,Android 实现开机自启动可能是移动操作系统中最
简单的了,我们只需要监听一个开机启动的Broadcast(广播)即可。首先写一个Receiver
(即广播监听器),继承BroadcastReceiver,如下所示:
public class BootReceiver extends BroadcastReceiver {
private PendingIntent mAlarmSender;
@Override
public void onReceive(Context context, Intent intent) {
// 在这里干你想干的事(启动一个Service,Activity 等),本例是启动一个定时调度程序,
每30 分钟启动一个Service 去更新数据
mAlarmSender = PendingIntent.getService(context, 0, new Intent(context,
RefreshDataService.class), 0);
long firstTime = SystemClock.elapsedRealtime();
AlarmManageram=(AlarmManager)context.getSystemService(Activity.ALARM_SERVICE);
am.cancel(mAlarmSender);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 30*60*1000,
mAlarmSender);
}
}
接下来,我们只需要在应用程序配置文件AndroidManifest.xml 中注册这个Receiver 来监
听系统启动事件即可,如下所示:
<receiver android:name=".service.BootReceiver">
<intent-filter>
<!-- 系统启动完成后会调用-->
<action android:name="android.intent.action.BOOT_COMPLETED">
</action>
</intent-filter>
</receiver>
例二:
android开机启动service,适合闹钟程序实例中一共三个类
1.public class YourReceiver extends BroadcastReceiver
2.public class ServiceTest extends Service
3.public class ShowActivity extends Activity

更多相关文章

  1. [Android]Android(安卓)Activity 启动模式详解
  2. Android开机自动运行APP——BroadcastReceiver
  3. 【读书笔记】Android(安卓)应用程序进程的启动过程
  4. mobAndroid免费验证短信
  5. Android系统启动流程简析
  6. android 使用RelativeLayout布局出现的问题汇总(不定期添加更新)
  7. Android启动Application onCreate走了多次
  8. 详解Android冷启动实现APP秒开的方法
  9. Android(安卓)activity启动关闭时滑动出现消失(并解决activity跳

随机推荐

  1. 浅谈Android的BaseAdapter适配器模式
  2. Android开发环境配置之ADT怪异问题
  3. Graphical layout无法正确显示的解决方法
  4. Android(安卓)中监听WIFI连接状态变化
  5. 【Android】10.1 扩展组件库和其他视图--
  6. Android(安卓)Camera 高级特性——闪光灯
  7. Android(安卓)拦截Home键的常用方法
  8. 【Android】ReactNative Android端启动流
  9. Android(安卓)NFS 开发配置
  10. 阅读《Android(安卓)从入门到精通》(35)—