目前很多 APP 点击返回键(或者左滑)返回桌面,都是不退出 APP,只是进入后台,再次进入 APP 回到之前的页面,不用刷新或者重新创建。自己也觉得这样用户体验会好很多,虽然有一个弊端就是不结束进程,会一直占用内存,但是相对现在的手机性能来说这都不需要考虑。
效果图:
相关部分就是启动页和主页面,所以也只需要修改这两部分的相关内容就行!
启动页代码:
public class LaunchWelcomeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launch_welcome);
}
}
activity_launch_welcome:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/guide_bg4" />
</LinearLayout>
主页面返回键相关代码:
private long mExitTime; //退出的时间
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK){
exit();
return true;
}
return super.onKeyDown(keyCode, event);
}
public void exit(){
if ((System.currentTimeMillis() - mExitTime) > 2000){
Toast.makeText(DepartmentStoreActivity.this, "再点一次,返回桌面", Toast.LENGTH_SHORT).show();
mExitTime = System.currentTimeMillis();
}else {
Intent homeIntent = new Intent(Intent.ACTION_MAIN);
homeIntent.addCategory(Intent.CATEGORY_HOME);
homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(homeIntent);
}
}
}
AndroidManifest.xml 相关代码:
<activity android:name=".LaunchWelcomeActivity" android:theme="@style/FullScreen"
android:launchMode="standard">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
最关键的地方就是启动页的启动模式:android:launchMode=“standard”