8.3 Android Basic 数据存储 Intent&Broadcast

<<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 前者接收actioncom.tutorial.action.NEW_BRAODCAST_1Intnet,后者接收actioncom.tutorial.action.NEW_BROADCAST_2Intent

       

    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

posted @ 2011-03-25 17:28  敏捷学院  阅读(280)  评论(0编辑  收藏  举报