手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

安卓App相互唤醒的几种方式

时间:2024-10-12 01:00:13

1、 ComponentName用ComponentName唤起Server,Server的Activity要在manifest配置中设置exported为true。Server的配置:<activity android:name="com.jxx.server.ServerActivity" android:exported="true"/>Client调用:Intent intent1 = new Intent();ComponentName componentName = new ComponentName("com.jxx.server", "com.jxx.server.ServerActivity");intent1.setComponent(componentName);intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

2、 隐式跳转Uri:唤起拨号的页面Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" + phoneNumber)); startActivity(intent);用Uri的形式唤起Server并传递数据。Server端配置:<activity android:name=".SecondActivity"> <intent-filter> <action android:name="com.jxx.server.ServerActivity" /> <data android:host="com.jxx.server" android:scheme="ServerActivity" /><category android:name="android.intent.category.DEFAULT" /> </intent-filter>

3、 PackageManager知道Server的包名即可。PackageManager packageManager = getPackageManager();Intent intent3 = packageManager.getLaunchIntentForPackage("com.jxx.server");if (intent3 != null){ startActivity(intent3);

4、 静态什讠鞅携广播接收者Server端注册一个静态广播接收者,在广播接收者中跳转Activity即可,客户端只需要发送一个广播。Server定义广播接收者:public class ServerBroadCastReceiver extends BroadcastReceiver{@Override public void onReceive(Context context, Intent intent){Intent intent1 = new Intent(context, MainActivity.class); intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent1); }}在manifest中注册为静态广播接收者,并定义action:<receiver android:name=".ServerBroadCastReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="server.ServerBroadCastReceiver" /> </intent-filter>

© 手抄报圈