广播(开机时APP自动启动)
2017-04-20 本文已影响0人
谜之龙
*如果不想传值,可新建个APP类负责上下文
public class App extends Application {
public static App appcontext;
@Override
public void onCreate() {
super.onCreate();
appcontext=this;
}
}
在清单文件中注册
//使用的权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
//注册
<receiver android:name=".guangbo.Radio" >
<intent-filter>
<action android:name="android.intent.action.BOOT_" />
</intent-filter>
</receiver>
广播的接收类
//新建一个广播接收
public class Radio extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
boolean boot= SPar.getBoolean("boot",false);
if (boot){
Intent intent1=new Intent(context, ShanActivity.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
}
}
}
一个工具类,负责传递状态的
//新建一个工具负责传递状态
public class SPar {
//文件名字,负责接收状态的文件
private static String SP_name="info";
//接收点击是传送过来的按钮,并上传到本地
public static void saveboolean(String pass,boolean check){
SharedPreferences sp = App.appcontext.getSharedPreferences(SP_name, Context.MODE_APPEND);
sp.edit().putBoolean(pass,check).commit();
}
//从本地获取状态,可给其他类使用
public static boolean getBoolean(String pass,boolean defacheck){
SharedPreferences sp = App.appcontext.getSharedPreferences(SP_name, Context.MODE_APPEND);
return sp.getBoolean(pass,defacheck);
}
}
*举个例子,checkbox
//点击监听
public void onCheckedChanged(CompoundButton buttonView, boolean
isChecked) {
switch (buttonView.getId()){
case R.id.checkbox_set_open:
SPar.saveboolean("boot",isChecked);
break;
} }
//将你选择的状态赋给初始状态
boolean boot=SPar.getBoolean("boot",false);
mChBopen.setChecked(boot);