// 1 send
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.send).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction("com.hello.broadcast");
intent.putExtra("msg", "msg in send");
sendBroadcast(intent);
}
});
// 注册广播消息
// 自己的进程,这几行代码就行了,不用配置manifest就行接收广播消息了
IntentFilter filter = new IntentFilter("com.hello.broadcast");
MyReceiver myReceiver = new MyReceiver();
registerReceiver(myReceiver, filter);
}
private class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "now process is send. msg is: " + intent.getStringExtra("msg"), Toast.LENGTH_SHORT).show();
}
}
}
// 2.1receiver
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 跨进程只有这几行代码不行呢,必须在manifest中配置才可以接收广播消息
// IntentFilter filter = new IntentFilter("com.hello.broadcast");
// MyReceiver myReceiver = new MyReceiver();
// registerReceiver(myReceiver, filter);
}
}
// 2.2
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "now process is receiver. msg is: " + intent.getStringExtra("msg"), Toast.LENGTH_SHORT).show();
}
}
// 2.3
<receiver android:name=".MyReceiver" >
<intent-filter>
<action android:name="com.hello.broadcast" />
</intent-filter>
</receiver>
本文详细介绍了Android应用程序中实现跨进程通信的方法。通过一个具体的示例,展示了如何在一个进程中发送广播,并在另一个进程中接收该广播。文章还解释了为什么跨进程接收广播需要在AndroidManifest.xml文件中进行额外配置。
879

被折叠的 条评论
为什么被折叠?



