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

2025-04-09 01:58:05

1、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、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、3. PackageManager知道Server的包名即可。PackageManager packageManager = getPackageManager();Intent intent3 = packageManager.getLaunchIntentForPackage("com.jxx.server");if (intent3 != null){ startActivity(intent3);

4、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>

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢