关于开机启动activity或者services
16lz
2021-01-25
android 开机自启动有三个步骤。
1. 首先实现一个BroadcastReceiver用来获取系统的 BOOT_COMPLETE 消息, 而该receiver又负责启动你的service或者activity.
写道 public class myReceiver extends BroadcastReceiver {@Override
public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(action.equals("android.intent.action.BOOT_COMPLETED"))//与receiver的action android:name保持一致
{//判断是否开机启动 Intent i = new Intent(Intent.ACTION_RUN);
i.setClass(context, yourService.class);
context.startService(i); //在此做开启services //Intentintent = new Intent(context, BabyCareMain.class);
// intent addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// context.startActivity(intent ); }; //为了 在Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果使用Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新的task,遇到上面那个异常的,都是因为使用了Context的startActivity方法。解决办法是,加一个flag。 intent .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
}
2.在Manifest文件中增加声明:
a. 加入使用权限声明:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
b. 加入receiver 注册声明:
<receiver android:name=".yourReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
3.搞定
更多相关文章
- Android:消息机制
- C++的Android接口---配置NDK
- android中Creating a Searchable Activity
- Android(安卓)- Shared Preference (分享首选项) 详解
- Android开发常用:Fresco加载图片的几种方式
- 复习android 的大喇叭~~~
- android 设置状态栏颜色
- 获取Android系统时间是24小时制还是12小时制
- Android(安卓)开发之 Drawable系列