zoukankan      html  css  js  c++  java
  • 安卓点击home键重启

    主要原因是:每次启动Intent导致新创建Task的时候,该Task会记录导致其创建的Intent;而如果后续需要有一个新的与创建Intent完全一致(完全一致定位为:启动类,action、category等等全部一样,不可多项也不可缺少),那么该Intent并不会触发Activity的新建启动,而只会将已经存在的对应Task移到前台;这也就是为什么桌面会在再次点击图标时将后台任务挪到前台而不是重新启动App的实现。

    1.在启动页的Activity中的 onCreate()方法做处理

     1 protected void onCreate(Bundle savedInstanceState) {  
     2     super.onCreate(savedInstanceState);  
     3     // 避免从桌面启动程序后,会重新实例化入口类的activity
     4     if (!this.isTaskRoot()) { // 判断当前activity是不是所在任务栈的根
     5         Intent intent = getIntent();
     6         if (intent != null) {
     7             String action = intent.getAction();
     8             if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) {
     9                 finish();
    10                 return;
    11             }
    12         }
    13     }
    14 } 

     2.如果启动页为SplashActivity,之后finish掉启动MainActivity,解决办法:将MainActivity的launchMode设置为“singleTask”

     1 <activity
     2     android:name=".activity.StartActivity"
     3     android:screenOrientation="portrait">
     4     <intent-filter>
     5         <action android:name="android.intent.action.MAIN" />
     6         <category android:name="android.intent.category.LAUNCHER" />
     7     </intent-filter>
     8 </activity>
     9 <activity
    10     android:name=".activity.MainActivity"
    11     android:launchMode="singleTask"
    12     android:screenOrientation="portrait" />
  • 相关阅读:
    elementui 表格格式化
    安装mongoDB出现的问题:无法启动
    学习笔记-angular 使用uuid
    cordova app打包apk签名
    ionic3 清除navpush的堆栈 (android真机返回键bug)
    ionic3 StatusBar 不显示问题
    ionic3+angular 倒计时效果
    windows下一台机器运行多个tomcat
    JDBC连接数据库小结
    工具类---提供精确的浮点数运算
  • 原文地址:https://www.cnblogs.com/jian-dan-ai-boke/p/10050401.html
Copyright © 2011-2022 走看看