【发布时间】:2016-02-03 05:33:57
【问题描述】:
我有 App A 和 App B。在 App A 中,我想向 App B 发送广播。 这是应用 A 的代码:
final Intent intent = new Intent();
intent.setAction("com.pkg.perform.Ruby");
intent.putExtra("KeyName", "code1id");
intent.setComponent(new ComponentName("com.pkg.AppB", "com.pkg.AppB.MainActivity"));
sendBroadcast(intent);
在 App B 中 - 在 MainActivity 中,我有 MyBroadCastReceiver 类。
public class MainActivity extends Activity {
private MyBroadcastReceiver MyReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Receive broadcast from External App
IntentFilter intentFilter = new IntentFilter("com.pkg.perform.Ruby");
MyReceiver = new MyBroadcastReceiver();
if(intentFilter != null)
{
registerReceiver(MyReceiver, intentFilter);
}
}
public class MyBroadcastReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(MainActivity.this, "Data Received from External App", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if(MyReceiver != null)
unregisterReceiver(MyReceiver);
}
}
我收到错误 - 接收方未注册。
【问题讨论】:
-
两个应用程序都在运行?
-
是的,两个应用程序都在运行
-
我已经阅读了这些链接
-
应用 B 是在 XML 中声明广播接收器还是通过代码注册/删除它?如果是第二个,那么很可能是应用 B 删除了接收器,因为它的 Activity 已被销毁。
标签: android broadcastreceiver broadcast