码迷,mamicode.com
首页 > 其他好文 > 详细

在程序中点击home键后将程序通知显示到状态栏中

时间:2015-07-14 23:54:09      阅读:389      评论:0      收藏:0      [点我收藏+]

标签:

当程序处于后台运作的时候,Activity处于onStop状态,so只要在onStop方法中将程序运行状态显示在状态栏即可

    //在状态栏显示程序通知
    private void showNotification() {
        // 创建一个NotificationManager的引用
        NotificationManager notificationManager = (NotificationManager) this
                .getSystemService(android.content.Context.NOTIFICATION_SERVICE);

        // 定义Notification的各种属性
        Notification notification = new Notification(R.drawable.ic_launcher,
                "superGao", System.currentTimeMillis());
        notification.flags |= Notification.FLAG_ONGOING_EVENT; // 将此通知放到通知栏的"Ongoing"即"正在运行"组中
        notification.flags |= Notification.FLAG_NO_CLEAR; // 表明在点击了通知栏中的"清除通知"后,此通知不清除,经常与FLAG_ONGOING_EVENT一起使用
        notification.flags |= Notification.FLAG_SHOW_LIGHTS;
        notification.defaults = Notification.DEFAULT_LIGHTS;
        notification.ledARGB = Color.BLUE;
        notification.ledOnMS = 5000;

        // 设置通知的事件消息
        CharSequence contentTitle = "superGao"; // 通知栏标题
        CharSequence contentText = "love"; // 通知栏内容
        Intent notificationIntent = new Intent(this, FirstActivity.class); // 点击该通知后要跳转的Activity
        PendingIntent contentItent = PendingIntent.getActivity(this, 0,
                notificationIntent, 0);
        notification.setLatestEventInfo(this, contentTitle, contentText,
                contentItent);

        // 把Notification传递给NotificationManager
        notificationManager.notify(0, notification);

    }

    /**
     * 当此Activity处于后台工作时, 在状态栏显示通知
     */
    @Override
    protected void onStop() {
        showNotification();
        super.onStop();
    }

当程序再次进入运行界面时,Activity处于onResume状态,so只要在onResume方法中去掉状态栏的程序运行信息即可

    /**
     * 此Activity启动后关闭状态栏的通知
     */
    @Override
    protected void onResume() {
        // 启动后删除之前我们定义的通知
        NotificationManager notificationManager = (NotificationManager) this
                .getSystemService(NOTIFICATION_SERVICE);
        notificationManager.cancel(0);
        super.onResume();
    }

在程序中点击home键后将程序通知显示到状态栏中

标签:

原文地址:http://www.cnblogs.com/superWolf/p/4646938.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!