代码
AndroidManifest.xml 中
<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" />
                <action android:name="com.google.android_BroadcastReceiver_020" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
<receiver android:name=".TestBroadcast">
<intent-filter>
<action android:name="com.google.android_BroadcastReceiver_01" />
</intent-filter>
</receiver>BroadcastReceiverDemo中要发送一个广播
private final String actionBroadcast="com.google.android_BroadcastReceiver_01";
Intent intent=new Intent(actionBroadcast);
sendBroadcast(intent);TestBroadcast 继承了 BroadcastReceiver
private final String ACTION_STR="com.google.android_BroadcastReceiver_02";
public void onReceive(Context context, Intent intent) {
this.context=context;
show();
}

private void show(){
notificationManager=(NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);
Intent i=new Intent(ACTION_STR);
PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, i, 0);
Notification notification=new Notification(R.drawable.icon,"TestBroadcast听到广播后发出信息",System.currentTimeMillis());
notification.setLatestEventInfo(context, "内容title", "内容", pendingIntent);
notificationManager.notify(0, notification);
}我主要想问的问题是  ACTION_STR这个ACTION和<action android:name="com.google.android_BroadcastReceiver_020" />
这个根本不会匹配,消息为什么还会提示
也就是说   我不是很明白PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, i, 0);这个中的i参数。也就是意向起到了什么作用

解决方案 »

  1.   

    我主要想问的问题是 ACTION_STR这个动作和BroadcastReceiverDemo中ACTION动作<action android:name="com.google.android_BroadcastReceiver_020" />
    根本不会匹配,消息为什么还会提示
    也就是说 我不是很明白PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, i, 0);这个中的i参数。也就是意向起到了什么作用
      

  2.   

    参数i是指点击该通知后要跳转的Activity,与你说的ACTION动作<action android:name="com.google.android_BroadcastReceiver_020" />没有任何关系。
    最多也就是你点击通知时,找不到ACTION_STR所指的activity而已。
    TestBroadcast 继承了 BroadcastReceiver
    private final String ACTION_STR="com.google.android_BroadcastReceiver_02";
    public void onReceive(Context context, Intent intent) {
    this.context=context;
    if (intent.getAction().equals("com.google.android_BroadcastReceiver_01")) { // 只关心你要接收的广播
        show();
    }
    }
      

  3.   

    我只是感觉
    Intent i=new Intent(ACTION_STR);
    PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, i, 0);好想没什么作用
      

  4.   

    例如,在点击通知时,希望再返回到你的activity,就可以把i参数设置为你的activity类。
      

  5.   

    Intent i=new Intent(ACTION_STR);
    PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, i, 0);ACTION_STR这个不是一个ACTION动作啊,要跳转的那个页面不用匹配这个吗