基于广播去实现的,自己定义一个广播并将其注册到AndroidManifest.xml中,加上对应的action,在代码中接收到这个广播后启动我们的应用。这样做有个小问题,就是第三方拉起的时候必须我们应用启动了一次后才能正常拉起,是因为我们的应用没有做开机自启动吧。
好了,先上接收广播的代码。
public class MyReceiver extends BroadcastReceiver { private static final String TAG = "MyReceiver"; @Override public void onReceive(Context context, Intent intent) { LogTrace.i(TAG, "MyReceiver onReceive--->" + ",action = " + intent.getAction()); if (null != intent) { if("com.android.test.action".equals(intent.getAction())) { //TODO: 接收到对应广播,启动我们的初始页面。 } } } } 别忘了将MyReceiver注册到AndroidManifest中并添加对应的action,可以添加多个action,根据需要做出不同的处理。 <receiver android:name="MyReceiver"> <intent-filter> <action android:name="com.android.test.action"/> <action android:name="com.android.local.action"/> </intent-filter> </receiver> 第三方拉起的动作就很简单了,发送对应action的广播即可。 Intent i = new Intent(); i.setAction("com.android.test.action"); sendBroadcast(i);亲自试验过了,是可以实现第三方拉起的。