广播(开机时APP自动启动)

*如果不想传值,可新建个APP类负责上下文

public class App extends Application {
 public static App appcontext;
@Override
public void onCreate() {
    super.onCreate();
    appcontext=this;
}
}

在清单文件中注册

 //使用的权限

//注册

        
            
        
    

广播的接收类

//新建一个广播接收
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);

你可能感兴趣的:(广播(开机时APP自动启动))