我想从应用程序中触发应用程序B,A。
为实现这一点,我在A
中写了以下内容PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("com.somepackage.appb");
intent.putExtra("secret", "message");
startActivity(intent);
然而,这会打开不需要的应用程序B.
请提出建议,以避免B打开并从应用程序A接收后台数据。
答案 0 :(得分:1)
在应用程序B中写一个BroadcastReceiver
并在清单中声明它。
在应用程序A中,制作一个带有额外内容的目标来定位该接收者,并使用该意图调用sendBroadcast
。
申请表B:
清单
<application>
...
<receiver android:name=".IncomingReceiver" android:enabled="true">
<intent-filter>
<action android:name="jason.wei.custom.intent.action.TEST"></action>
</intent-filter>
</receiver>
</application>
IncomingReceiver.java
public class IncomingReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String CUSTOM_INTENT = "jason.wei.custom.intent.action.TEST";
if (intent.getAction().equals(CUSTOM_INTENT)) {
System.out.println("GOT THE INTENT");
Toast.makeText(context, "GOT THE INTENT", Toast.LENGTH_LONG).show();
}
}
}
申请表A:
String CUSTOM_INTENT = "jason.wei.custom.intent.action.TEST";
Intent i = new Intent();
i.setAction(CUSTOM_INTENT);
sendBroadcast(i);
答案 1 :(得分:0)
您可以使用SharedPreferences。
答案 2 :(得分:0)
正如您所看到的,有很多方法可以做到这一点......我自己更喜欢创建一种可以在不与应用B交互的情况下更新数据的服务