通知图标


如果不想传值,可新建个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());
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,872评论 25 709
  • “一闪一闪亮晶晶,满天都是小星星”,作为一枚ios开发程序猿,最大的兴奋莫过于看着模拟器实现了自己想要的效果。废话...
    六月天空阅读 1,589评论 7 18
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,527评论 19 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 7,311评论 0 17
  • 网络构成 我们的大脑接收眼睛观察传播来的数据后,会对其进行一层层的神经元去解析数据,然后得到我们对于所见的判断。然...
    寒夏凉秋阅读 11,656评论 0 4

友情链接更多精彩内容