通知图标

2017-04-20  本文已影响0人  谜之龙

如果不想传值,可新建个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());
}
上一篇 下一篇

猜你喜欢

热点阅读