BroadcastReceiver 没有收到任何数据
BroadcastReceiver not receiving any data
我使用此代码将数据发送到我的 BroadcastReceiver
。
Log.d("recive message message message", message);
Intent resultBroadCastIntent = new Intent();
resultBroadCastIntent.setAction(Intent.ACTION_SEND);
resultBroadCastIntent.addCategory(Intent.CATEGORY_DEFAULT);
resultBroadCastIntent.putExtra(OUTPUT_TEXT, message);
sendBroadcast(resultBroadCastIntent);
和 BroadcastReceiver 代码
public class Broadcast_Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context, Notification_Intent_Service.class));
String resultText =intent.getStringExtra(Notification_Intent_Service.OUTPUT_TEXT);
Log.d("recive dwwwwwwwwwwwwwwww", resultText);
// this never run when message arrive
}
}
这是我的清单
<receiver
android:name=".Service.Broadcast_Receiver"
android:enabled="true"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
现在
Log.d("recive message message message", message);
消息已打印,我看到了,但它没有发送到 BroadcastReceiver
还是 BroadcastReceiver
没有收到数据?我不确定问题出在哪里。
发送广播时可以使用BOOT_COMPLETED
id
Intent resultBroadCastIntent = new Intent("android.intent.action.BOOT_COMPLETED");
resultBroadCastIntent.putExtra(OUTPUT_TEXT, message);
sendBroadcast(resultBroadCastIntent);
或在 <intent-filter>
中指定 SEND
操作
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.SEND" />
</intent-filter>
注意:确保您的 BroadcastReceiver 不是内部 class 否则将静态添加到其中或将其移动到上层。
您需要在清单
中为广播接收器注册Intent.ACTION_SEND
<receiver
android:name=".Service.Broadcast_Receiver"
android:enabled="true"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.SEND" />
</intent-filter>
</receiver>
我使用此代码将数据发送到我的 BroadcastReceiver
。
Log.d("recive message message message", message);
Intent resultBroadCastIntent = new Intent();
resultBroadCastIntent.setAction(Intent.ACTION_SEND);
resultBroadCastIntent.addCategory(Intent.CATEGORY_DEFAULT);
resultBroadCastIntent.putExtra(OUTPUT_TEXT, message);
sendBroadcast(resultBroadCastIntent);
和 BroadcastReceiver 代码
public class Broadcast_Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context, Notification_Intent_Service.class));
String resultText =intent.getStringExtra(Notification_Intent_Service.OUTPUT_TEXT);
Log.d("recive dwwwwwwwwwwwwwwww", resultText);
// this never run when message arrive
}
}
这是我的清单
<receiver
android:name=".Service.Broadcast_Receiver"
android:enabled="true"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
现在
Log.d("recive message message message", message);
消息已打印,我看到了,但它没有发送到 BroadcastReceiver
还是 BroadcastReceiver
没有收到数据?我不确定问题出在哪里。
发送广播时可以使用BOOT_COMPLETED
id
Intent resultBroadCastIntent = new Intent("android.intent.action.BOOT_COMPLETED");
resultBroadCastIntent.putExtra(OUTPUT_TEXT, message);
sendBroadcast(resultBroadCastIntent);
或在 <intent-filter>
SEND
操作
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.SEND" />
</intent-filter>
注意:确保您的 BroadcastReceiver 不是内部 class 否则将静态添加到其中或将其移动到上层。
您需要在清单
中为广播接收器注册Intent.ACTION_SEND <receiver
android:name=".Service.Broadcast_Receiver"
android:enabled="true"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.SEND" />
</intent-filter>
</receiver>