首先,说明一个问题,信鸽推送点击通知后进入哪个activity是由后台决定的,后台给你传你就能进入特定activity,不给你传就只能重新打开app。
这里针对的是服务器默认的情况下,如何避免打开多个的相同activity。项目的逻辑很简单,欢迎页,然后登陆过进入主界面,没登录进入登录页。
sp = this.getSharedPreferences("userInfo", Context.MODE_WORLD_READABLE);
XGPushClickedResult click = XGPushManager.onActivityStarted(this);
if (click != null) {
goLogin();
}else {
mHandler.sendEmptyMessageDelayed(0, 2000);
}
private Handler mHandler = new Handler(){
public void handleMessage(android.os.Message msg) {
goLogin();
};
};
private void goLogin(){
if("123".equals(sp.getString("username",""))&&"123".equals(sp.getString("password",""))){
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
finish();
}else{
Intent intent = new Intent(this,LoginActivity.class);
startActivity(intent);
finish();
}
}
MainActivity的启动模式要设置为singleTask。