【发布时间】:2020-06-29 06:56:00
【问题描述】:
我有 2 个应用,A 和 B,我想从应用 A 向 B 发送 2+2,作为回报,我想从应用 B 接收 4,请告诉我流程和完整的代码库。
【问题讨论】:
-
类似于this的东西
标签: android android-intent android-pendingintent
我有 2 个应用,A 和 B,我想从应用 A 向 B 发送 2+2,作为回报,我想从应用 B 接收 4,请告诉我流程和完整的代码库。
【问题讨论】:
标签: android android-intent android-pendingintent
1.来自应用 A 使用您的两个号码触发一次广播。
Intent intent = new Intent("com.myapps.appA");
intent.putExtra("num1",2);
intent.putExtra("num2",2);
sendBroadcast(intent);
现在在App B中注册broadCast1的接收器,你可以在它的Main Activity的onCreate中做到这一点。
私有BroadcastReceiver广播接收器1;
...
broadcastReceiver1 = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
}
};
registerReceiver(broadcastReceiver1, new
IntentFilter("com.myapps.appA");
在 onRecieve 内部从意图中获取两个数字并使用结果触发另一个广播,即
int num1 = intent.getIntExtra("num1",0);
int num2 = intent.getIntExtra("num2",0);
Intent intent2 = new Intent("com.myapps.appB");
intent2.putExtra("sum",num1+num2);
YourActivity.this.sendBroadcast(intent2);
现在在您的 App A 中注册 Broadcast2 的接收者,您可以在其 Main 活动的 onCreate 中执行此操作。
私有BroadcastReceiver广播接收器2;
...
broadcastReceiver2 = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
}
};
registerReceiver(broadcastReceiver2, new
IntentFilter("com.myapps.appB");
在它的 OnRecive() 里面得到结果
int sum = intent.getIntExtra("sum",0);
最重要的是不要忘记在活动的 onStop 中取消注册接收器
【讨论】: