如果不想传值,可新建个APP类负责上下文
public class App extends Application {
public static App appcontext;
@Override
public void onCreate() {
super.onCreate();
appcontext=this;
}
}
一个工具类,负责传递状态的
//新建一个工具负责传递状态
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);
}
}
************************************************************************** 下面的这些都在同一个Activity中写的,就是点击事件的主页中
点击是否显示图标的ChexckBox的的位置,赋给他变化的值
//与下面2个在同一个ACtivity中
boolean logo=SPar.getBoolean("logo",false);
mChBtu.setChecked(logo);
点击是否显示图标的ChexckBox
//与上面1个,下面1个在同一个ACtivity中
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
switch (buttonView.getId()){
case R.id.checkbox_set_message:
SPar.saveboolean("logo",isChecked);
//判断选择的状态
if (isChecked){
showlogo();
}else {
//别将下面的转化为全局,否则会出现失误
NotificationManager mNotifiManager= (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotifiManager.cancel(0);
}
break;
定义通知图标
//与上面2个在同一个ACtivity中
public void showlogo(){
//设置通知图标的属性
NotificationCompat.Builder mBuilder=new NotificationCompat.Builder(this)
//设置图标
.setSmallIcon(R.mipmap.clean)
.setContentTitle("手机卫士")
//可以自己写布局
.setContentText("垃圾清理");
//点击跳转通知图标是跳转到哪里
Intent resultintent=new Intent(this,MainActivity.class);
//由于系统未开启,所以要写拓展启动,可以理解为栈
TaskStackBuilder stackBuilder=TaskStackBuilder.create(this);
//把要跳转的Activity加进栈
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(resultintent);
//点击监听事件
PendingIntent resultpendingIntent=stackBuilder.getPendingIntent(0,PendingIntent.FLAG_CANCEL_CURRENT);
mBuilder.setContentIntent(resultpendingIntent);
//通过管理者显示通知
NotificationManager mNotifiManager= (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
//显示通知,0是ID就一个钥匙,当图标多了区分的
mNotifiManager.notify(0,mBuilder.build());
}