赞
踩
很多APP点击返回键(或者左滑)返回桌面,都是不退出APP,只是进入后台,再次进入APP回到之前的页面,不用刷新或者重新创建。自己也觉得这样用户体验会好很多,虽然有一个弊端就是不结束进程,会一直占用内存,但是相对现在的手机性能来说这都不需要考虑。
老样子先看看效果图吧:
相关部分就是启动页和主页面,所以也只需要修改这两部分的相关内容就行!
启动页代码:
package com.wzq.jz_app.ui.activity; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.content.Intent; import android.os.Bundle; import android.view.View; import androidx.appcompat.app.AppCompatActivity; import com.wzq.jz_app.R; /** * 作者:wzq on 2019/4/10. * 邮箱:wang_love152@163.com * 启动页 */ public class LaunchActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_launch); View target=findViewById(R.id.launch); //第一个参数--target:你要对那个View绑定动画,今天我们要对ImageView绑定动画 //第二个参数---propertyName:你要执行什么动画---动画的属性名称 //缩放动画:scaleX //渐变动画:alpha //第三个参数--动画变化范围(例如:缩放动画变化范围0.0-1.0之间) ObjectAnimator objectAnimator=ObjectAnimator.ofFloat(target,"alpha",0.5f,1.0f); // //设置动画执行的时间(企业级开发标准:执行时间一般情况2-3秒) objectAnimator.setDuration(1000); // //启动动画 objectAnimator.start(); //扩展知识点---设计模式---适配器模式 //项目开发需要定义很多的接口 objectAnimator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); startActivity(new Intent(LaunchActivity.this,MainActivity1.class)); finish(); } }); } }
主页面代码:
MainActivity返回键相关代码:
//退出时的时间 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(MainActivity1.this, "再点一次,返回桌面", Toast.LENGTH_SHORT).show(); mExitTime = System.currentTimeMillis(); } else { // 直接关闭当前活动页面 // this.finish(); // System.exit(0); //方法1退回到桌面进入后台 //moveTaskToBack(false); //方法2退回到桌面进入后台 Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory(Intent.CATEGORY_HOME); homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(homeIntent); } }
manifest相关代码:
<activity android:name="com.wzq.jz_app.ui.activity.LaunchActivity"
android:launchMode="standard">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.wzq.jz_app.ui.activity.MainActivity1"
android:screenOrientation="portrait">
</activity>
最关键的地方就是启动页的启动模式
android:launchMode=“standard”
然后到这里就结束了,不了解启动模式的阔以看看这篇博客!https://blog.csdn.net/Lemon_wzq/article/details/103777049
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。