代码如下:
1、在Launcher界面(非主界面MainActivity),比如WelcomeActivity,
onCreate方法里判断如下代码:
// 判断是否从推送通知栏打开的
XGPushClickedResult click = XGPushManager.onActivityStarted(this);
if (click != null) {
finish();
return;
}
即便默认点击通知会从主程序入口进入,只要你是从信鸽推送过来的,直接咔嚓掉。。。也就不会有返回的时候主程序回到栈顶的状态。。。。
2、这种状况下,我们在WelcomeActivity的onDestroy方法里判断,
如果当前堆栈里有MainActivity则表示在启动状态,
如果没有,则表示是从后台进入(程序被强行已退出状态),此时如果Destroy的话,未免有点不友好,所以我们可以再手动启动App的主界面MainActivity.
代码如下:
// 判断是否从推送通知栏打开的
XGPushClickedResult click = XGPushManager.onActivityStarted(this);
if (click != null) {
if(AppManager.getInstance().getActivity(MainActivity.class) == null){
UIHelper.startActivity(this, MainActivity.class);
}
finish();
return;
}
置于AppManager是什么神物,你可以参考这里(你肯定知道这是oschina的源码吧,哈哈~~~~)
【当然这种情况只适合后台给你发的是通知,如果是自定义消息(不懂的可以找个推送的后台尝试了看看),我想一切都好办了,想怎么跳,自己说了算。。。】