出差刚回公司,闲得慌,就写一点android技术博客吧!把一些在工作中遇到的问题和技术点分享给大家吧!希望对你们有所帮助,这个项目自己和同事两个人做一期和二期大概花了一个月零六天弄完的,好了不多说了!

 

  其实像腾讯新闻,网易新闻,当你的app退出后,服务器推送过来一消息(也可以是通知),都是通过广播接受者接收,点击notification后到开启详细的activity界面, 如果是消息,那就要自己组装后弹出notification,到了详细新闻界面的时候,点击返回键(后退按钮),这里开启的就是主界面activity了,这里说明一下,我们这个项目是用的是百度云推送,这个免费并且用起来还可以

下面就展示一些代码吧

// 弹出通知

    Intent startIntent=newIntent(context,OnlineAdviceActivity.class);

    //这里是为了判断是否是点击notification后到的详细界面

    startIntent.putExtra("onlineFlag",true);

    startIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);

    PublicUtil.showNotification(context,NoteDateParser.title, NoteDateParser.body,NOTIFICATION_ONLINE_ADVICE, startIntent);


附上PublicUtil.showNotification的代码 

publicstatic voidshowNotification(Contextcontext, String title, String body,int notifyId,     Intent startIntent) {

        //这里是弹出notifacation的代码     

        NotificationManager notificationManager= (NotificationManager) context .getSystemService(context.NOTIFICATION_SERVICE);

        Notification notification = new Notification(R.drawable.app_icon,"",  System.currentTimeMillis());

        notification.defaults = Notification.DEFAULT_SOUND;// 声音

        notification.defaults = Notification.DEFAULT_VIBRATE;// 震动

        notification.flags = Notification.FLAG_AUTO_CANCEL

        PendingIntent contentIntent =PendingIntent.getActivity(context, 0, startIntent, 0);

         notification.setLatestEventInfo(context,title, body, contentIntent)

        notificationManager.notify(notifyId,notification); 

    }



//这里是点击notifacation后进入的activity(OnlineAdviceActivity)中返回按钮的事件监听

开启OnlineAdviceActivity后要在OnlineAdviceActivity的 oncreate() 方法中得到 onlineFlag的值

如果是true则是点击通知notification后触发的事件,

下面是去的onlineFlag的值

onlineFlag=intent.getBooleanExtra("onlineFlag",false);

iv_main_back.setOnClickListener(new OnClickListener() {

         @Override

         publicvoid onClick(View v) {

            if(onlineFlag){

                Intent intent=new Intent(OnlineAdviceActivity.this,MainActivity.class);

                startActivity(intent);

                finish();

            }else{

                finish();

            }

         }

      });

//后退键也要做相应的处理,如果是点击notification进入的OnlineAdviceActivity则后退也要开启主界面

@Override

      publicboolean onKeyDown(int keyCode, KeyEvent event) {

         if (keyCode == KeyEvent.KEYCODE_BACK) {

             if(onlineFlag){

                  Intent intent=new Intent(OnlineAdviceActivity.this,MainActivity.class);

                  startActivity(intent);

                  finish();

             }

         }

         returnsuper.onKeyDown(keyCode, event);

      }














更多相关文章

  1. Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递
  2. Android(安卓)录制手机屏幕视频生成GIF图片实例详解
  3. Android实战项目——音乐播放器 由四大组件之一Service、使用Ser
  4. Android大屏项目中的数字键盘输入界面的功能实现
  5. 安卓TV开发(九) Android模拟事件 遥控器变身成鼠标来操作TV
  6. [置顶] Android(安卓)平板中 自定义键盘(popuwindow) 居于屏幕左
  7. eBook 功能模块二之设置模块
  8. Android(安卓)mp3音乐播放器实例-----概述
  9. android 验证码按钮点击,判断网络和匹配手机号并自动更新时间;

随机推荐

  1. android 开发-数据存储之文件存储
  2. 浅谈android的selector背景选择器
  3. Android(安卓)Studio简单设置
  4. Android中Touch事件的处理
  5. Android图形系统(八)-app与SurfaceFlinger
  6. android简介
  7. Android(安卓)EditView属性详细介绍
  8. Android资源文件 - 使用资源存储字符串
  9. Android(安卓)NDK 开发教程一:安装NDK
  10. 基本架构