安卓点击home键重启

别裁伪体亲风雅,转益多师是汝师。这篇文章主要讲述安卓点击home键重启相关的知识,希望能为你提供帮助。
主要原因是:每次启动Intent导致新创建Task的时候,该Task会记录导致其创建的Intent;而如果后续需要有一个新的与创建Intent完全一致(完全一致定位为:启动类,action、category等等全部一样,不可多项也不可缺少),那么该Intent并不会触发Activity的新建启动,而只会将已经存在的对应Task移到前台;这也就是为什么桌面会在再次点击图标时将后台任务挪到前台而不是重新启动App的实现。
1.在启动页的Activity中的 onCreate()方法做处理

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

 
  2.如果启动页为SplashActivity,之后finish掉启动MainActivity,解决办法:将MainActivity的launchMode设置为“singleTask”
1 < activity 2android:name=".activity.StartActivity" 3android: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 10android:name=".activity.MainActivity" 11android:launchMode="singleTask" 12android:screenOrientation="portrait" />

【安卓点击home键重启】 

    推荐阅读