zoukankan      html  css  js  c++  java
  • 在程序中点击home键后将程序通知显示到状态栏中

    当程序处于后台运作的时候,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();
        }

  • 相关阅读:
    xcode
    C++中一个井号和两个井号的使用
    未能正确加载“visual C++ package”包
    cocos2dx CCLayer上精灵的点击判断的问题
    Command /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp failed with exit code 1
    如何优化cocos2d程序的内存使用和程序大小:第二部分_(转)
    PVR: VFrame attempted to use one of these functions 报错
    网页里加入百度在线音乐播放器
    CCHttpClient发起https请求
    伪装qq空间登录
  • 原文地址:https://www.cnblogs.com/superWolf/p/4646938.html
Copyright © 2011-2022 走看看