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
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
相关文章推荐
- Android数据存储之文件 openFileOutput & openFileInput
- Android中List与Map<String,Object>及SimpleAdapter用来存储数据并展示出来的联合用法
- 【Android数据传递】Intent传递List和Object和List<Object>(附源码)
- 从零开始学android<数据存储(1)SharedPreferences属性文件.三十五.>
- Android 数据存储 &SQLite使用,
- 从零开始学android<数据存储(4)Sqlite数据库存储.三十八.>
- [ZZ]android sqllite数… 分类: Android数据存储 2014-05-30 10:58 61人阅读 评论(0) 收藏
- 处理Android SQLite -&n… 分类: Android数据存储 2014-05-30 10:58 95人阅读 评论(0) 收藏
- 从零開始学android<数据存储(1)SharedPreferences属性文件.三十五.>
- android数据存储<三>-----Sqlite操作
- 【原创Android游戏】--猜数字游戏V1.1 --数据存储,Intent,SimpleAdapter的学习与应用
- Android 7.0 BroadcastReceiver接收pendingIntent 传递过来序列化数据
- android中多次调用PendingIntent.getBroadcast(),intent数据不更新问题
- Android两种存储用户临时数据的方式比较:Preferences & Bundle
- 8.1 Android Basic 数据存储 Preferences SharedPreferences
- 从零开始学android<数据存储(3)External Storage外部存储.三十七.>
- 8.1 Android Basic 数据存储 Preferences SharedPreferences Demo2
- Android数据存储五种方式总结<转载>
- 从零開始学android<数据存储(1)SharedPreferences属性文件.三十五.>
- Android PendingIntent.getBroadcast intent数据不更新问题