`

Notification和NotificationManager

阅读更多
本文转自:http://liangruijun.blog.51cto.com/3061169/657502
只用做学习。
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<Button
		android:text="发出广播通知"
		android:id="@+id/Button1"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content" />
</LinearLayout>


second.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<TextView
		android:text="显示通知界面"
		android:id="@+id/TextView1"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content" />
	<Button
		android:text="取消通知"
		android:id="@+id/cancelButton2"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content" />
</LinearLayout>


在AndroidManifest.xml文件中16~21加入对receiver,SecondActivity的声明
<?xml version="1.0" encoding="utf-8"?>
<manifest
	xmlns:android="http://schemas.android.com/apk/res/android"
	package="com.android.notification"
	android:versionCode="1"
	android:versionName="1.0">
	<uses-sdk
		android:minSdkVersion="10" />
	<application
		android:icon="@drawable/icon"
		android:label="@string/app_name">
		<activity
			android:name=".MainActivity"
			android:label="@string/app_name">
			<intent-filter>
				<action
					android:name="android.intent.action.MAIN" />
				<category
					android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
		</activity>
		<receiver
			android:name="MyReceiver">
			<intent-filter>
				<action
					android:name="com.android.notification.MY_ACTION" />
			</intent-filter>
		</receiver>
		<activity
			android:name="SecondActivity" />
	</application>
</manifest>


MainActivity.java
import android.app.Activity;  
import android.content.Intent;  
import android.os.Bundle;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.Button;  
 
public class MainActivity extends Activity {  
    // 声明Button 
    private Button btn;  
    // 定义Broadcast Receiver action 
    private static final String MY_ACTION = "com.android.notification.MY_ACTION";  
    @Override 
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        // 设置当前布局视图 
        setContentView(R.layout.main);  
        // 实例化Button 
        btn = (Button)findViewById(R.id.Button1);  
        // 添加事件监听器 
        btn.setOnClickListener(listener);  
    }  
    // 创建事件监听器 
    private OnClickListener listener = new OnClickListener() {  
        @Override 
        public void onClick(View v) {  
            // 实例化Intent 
            Intent intent = new Intent();  
            // 设置Intent action属性 
            intent.setAction(MY_ACTION);  
            // 发起广播 
            sendBroadcast(intent);  
        }  
    };  
} 


MyReceiver.java
import android.content.BroadcastReceiver;  
import android.content.Context;  
import android.content.Intent;  
 
public class MyReceiver extends BroadcastReceiver{  
    @Override 
    public void onReceive(Context context, Intent intent) {  
        // 实例化Intent 
        Intent i = new Intent();  
        // 在新的任务中启动Activity 
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
        // 设置Intent启动的组件名称 
        i.setClass(context, SecondActivity.class);  
        // 启动Activity显示通知 
        context.startActivity(i);  
    }  



SecondActivity.java
import android.app.Activity;  
    import android.app.Notification;  
    import android.app.NotificationManager;  
    import android.app.PendingIntent;  
    import android.content.Intent;  
    import android.os.Bundle;  
    import android.view.View;  
    import android.view.View.OnClickListener;  
    import android.widget.Button;  
     
    public class SecondActivity extends Activity {  
        // 声明按钮 
        private Button cancelBtn;  
        // 声明Notification 
        private Notification notification ;  
        // 声明NotificationManager 
        private NotificationManager mNotification;  
        // Notification标示ID 
        private static final int ID = 1;  
        @Override 
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.second);  
            // 实例化按钮 
            cancelBtn = (Button)findViewById(R.id.cancelButton2);  
            // 获得NotificationManager实例 
            String service = NOTIFICATION_SERVICE;  
            mNotification = (NotificationManager)getSystemService(service);  
              
            // 实例化Notification 
            notification = new Notification();  
            // 设置显示图标,该图标会在状态栏显示 
            int icon = notification.icon = android.R.drawable.stat_notify_chat;   
            // 设置显示提示信息,该信息也会在状态栏显示 
            String tickerText = "Test Notification";   
            // 显示时间 
            long when = System.currentTimeMillis();  
            notification.icon = icon;  
            notification.tickerText = tickerText;  
            notification.when = when;  
              
            // 实例化Intent 
            Intent intent = new Intent(this, MainActivity.class);   
            // 获得PendingIntent 
            PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);   
            // 设置事件信息 
            notification.setLatestEventInfo(this, "消息", "Hello Android", pi);   
            // 发出通知 
            mNotification.notify(ID, notification);  
              
            // 为按钮添加监听器 
            cancelBtn.setOnClickListener(cancelListener);  
        }  
          
        // 取消通知监听器 
         private OnClickListener cancelListener = new OnClickListener() {  
            @Override 
            public void onClick(View v) {  
                // 取消通知 
                mNotification.cancel(ID);  
            }  
        };  
    } 







分享到:
评论

相关推荐

    Android中通过Notification&NotificationManager实现消息通知

    本教程将详细介绍如何利用Notification和NotificationManager在Android中创建各种类型的通知。 首先,为了实现通知功能,我们需要在AndroidManifest.xml文件中添加振动权限,因为通常情况下,通知会伴随振动或声音...

    Notification与NotificationManager详细介绍

    在Android系统中,发一个状态栏通知还是很方便的。下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置?... NotificationManagernm=(NotificationManager)getSystemService(NOTIFICATION_SERV

    Android中使用Notification实现状态栏的通知

    Android也提供了用于处理这些信息的类,它们是Notification和NotificationManager。其中,Notification代表的是具有全局效果的通知,而NotificationManager则是用于发送Notification通知的系统服务。 使用...

    Android使用Notification在状态栏上显示通知

    Android也提供了用于处理此类信息的类,他们是Notification和NotificationManager。其中,Notification代表的是具有全局效果的通知;而NotificationManager则是用于发送Notification通知的系统服务。 使用...

    Android开发 — 状态栏通知Notification、NotificationManager详解

    本文将详细介绍如何使用`Notification`和`NotificationManager`来创建、更新和管理状态栏通知。 首先,`NotificationManager`是用于管理状态栏通知的系统服务,它负责发送通知以及清除已发送的通知。获取`...

    android Notification通知消息学习(NotificationManager)

    8. **源码分析**: 文章提到的“源码”标签可能意味着作者深入解析了NotificationManager和Notification的相关源代码,这有助于开发者理解其工作原理并优化通知的使用。 9. **工具**: 可能是介绍了一些辅助工具或库...

    第7章AndroidBroadcastReceiver组件.pptx

    当BroadcastReceiver接收到重要广播时,可以通过Notification和NotificationManager向用户显示通知。NotificationManager是用于管理通知的系统服务,调用`NotificationManager.notify(int id, Notification ...

    android服务和广播PPT学习教案.pptx

    NotificationBroadcastReceiver不提供可视化界面,但我们可以借助Notification和NotificationManager来创建可显示的提醒。Notification类提供了多种常量用于设置通知效果,如默认的灯光、声音和震动,以及标志位来...

    android服务和广播学习教案.pptx

    广播接收器本身不提供可视化反馈,但可以通过Notification和NotificationManager来显示通知。Notification允许开发者向用户展示消息、图标、声音、震动等信息,提高用户体验。在创建Notification时,可以设置各种...

    Android中关于Notification及NotificationManger的详解

    在Android应用开发中,Notification和NotificationManager是两个关键组件,用于在系统状态栏显示非侵入性的用户提醒。与AlertDialog不同,Notification不会打断用户的当前操作,而是以更温和的方式提供信息,用户...

    BroadcastReceiver 广播和通知

    BroadcastReceiver是全局|系统级别的监听器 Notification和NotificationManager是局部|程序级别的监听器,可以实现可视化的信息显示,通过它在设备状态栏上显示广播信息的内容以及图标和震动等信息

Global site tag (gtag.js) - Google Analytics