基于广播去实现的,自己定义一个广播并将其注册到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);
亲自试验过了,是可以实现第三方拉起的。