您的位置:首页 > 移动开发 > Android开发

8.3 Android Basic 数据存储 Intent&Broadcast

2011-03-25 17:28 393 查看
<<BroadcastReceiverDemo.zip>>

Intnet & Broadcast 示例演示

新建项目BroadcastReceiverDemo项目,编辑AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.tutorial" android:versionCode="1" android:versionName="1.0">

<application android:icon="@drawable/icon" android:label="@string/app_name">

<activity android:name=".BroadcastReceiverDemo"

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="AndroidReceiver1">

<intent-filter>

<action android:name="com.toturial.action.NEW_BROADCAST_1"></action>

</intent-filter>

</receiver>

<receiver android:name="AndroidReceiver2">

<intent-filter>

<action android:name="com.tutorial.action.NEW_BROADCAST_2"></action>

</intent-filter>

</receiver>

</application>

<uses-sdk android:minSdkVersion="8" />

</manifest>

我们注册了两个BroadcastReceiver 一个AndroidReceiver1 另一个是AndroidReceiver2 前者接收action为com.tutorial.action.NEW_BRAODCAST_1的Intnet,后者接收action为com.tutorial.action.NEW_BROADCAST_2的Intent。

2. 编辑BroadcastReceiverDemo类,在这里广播Intent:

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

public class BroadcastReceiverDemo extends Activity {

public static final int ITEM0 = Menu.FIRST;

public static final int ITEM1 = Menu.FIRST + 1;

static final String ACTION_1 = "com.toturial.action.NEW_BROADCAST_1";

static final String ACTION_2 = "com.tutorial.action.NEW_BROADCAST_2";

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

public boolean onCreateOptionsMenu(Menu menu) {

super.onCreateOptionsMenu(menu);

menu.add(0, ITEM0, 0, "显示Notification");

menu.add(0, ITEM1, 0, "清除Notification");

menu.findItem(ITEM1);

return true;

}

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case ITEM0:

actionClickMenuItem1();

break;

case ITEM1:

actionClickMenuItem2();

break;

}

return true;

}

private void actionClickMenuItem1() {

Intent intent = new Intent(ACTION_1);

sendBroadcast(intent);

}

private void actionClickMenuItem2() {

Intent intent = new Intent(ACTION_2);

sendBroadcast(intent);

}

}

3. 创建AndroidReceiver1 和 AndroidReceiver2类,继承自BroadcastReceiver

import android.app.Notification;

import android.app.NotificationManager;

import android.app.PendingIntent;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

public class AndroidReceiver1 extends BroadcastReceiver {

Context context;

public static int NOTIFICATION_ID = 21321;

@Override

public void onReceive(Context context, Intent intent) {

this.context = context;

showNotification();

}

private void showNotification(){

NotificationManager notificationManager = (NotificationManager)context.getSystemService(android.content.Context.NOTIFICATION_SERVICE);

Notification notification = new Notification(R.drawable.icon,"在AndroidReceiver1中",System.currentTimeMillis());

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(context,BroadcastReceiverDemo.class), 0);

notification.setLatestEventInfo(context,"在AndroidReceiver1中",null,contentIntent);

notificationManager.notify(NOTIFICATION_ID,notification);

}

}

import android.app.NotificationManager;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

public class AndroidReceiver2 extends BroadcastReceiver {

Context context;

@Override

public void onReceive(Context context, Intent intent) {

this.context = context;

DeleteNotification();

}

private void DeleteNotification(){

NotificationManager notificationManager =(NotificationManager)context.getSystemService(android.content.Context.NOTIFICATION_SERVICE);

notificationManager.cancel(AndroidReceiver1.NOTIFICATION_ID);

}

}





im@xingquan.org
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐