用户按下HOME按键的行为,会发送一个Intent给系统,要求系统加载HomeActivity。
这与应用程序中启动其他的activity没有什么区别。我们要做的就是构建合适的intent以实现该功能。
启动代码如下:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
一般都是重写activity的返回键功能,如下:
@Override
public void onBackPressed() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
但是依然存在问题:点击返回键,返回之后,重新进入APP,依然会走onCreate()生命周期方法。
无效解决之一:查找了资料,通过在Manifest.xml文件中设置noHistory属性:
<activity
android:name=".MainActivity"
android:noHistory="false">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
设置之后,但是点击返回键依旧会走。
后续继续解决。