原由:
利用程序安装器打开程序,启动的Intent是没有带Category,而我们自己打开程序是带了Category,所以只需要在配置Intent.ACTION_MAIN的Activity判断下有无Category。然后放到通知栏的时候要更具有无Category 来生成启动的Intent。
第一种实现(入口Activity)
-
if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0){
-
finish();
-
return;
-
}
第二种实现(入口Activity的manifast文件中添加)
-
android:alwaysRetainTaskState="true"
-
android:clearTaskOnLaunch="false"
第三种(入口Activity)
-
@Override
-
protected void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
//首次安装按home键置入后台,从桌面图标点击重新启动的问题
-
if (!isTaskRoot()) {
-
finish();
-
return;
-
}