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);
}
};
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值