安卓开发——每次进入应用都会创建启动页的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28484355/article/details/79225207

我们在用一些常用app时,它们的实现都是:回到桌面后,再次进入应用时,显示的是上次显示的界面,除非你第一次进入或者杀掉后台。

而我们的应用一般来说,若是有启动页的话,重新进入的时候都会走一遍启动页,这不够友好。

解决办法:

1、找到启动页,也就是AndroidManifest.xml中设置了启动的Activity,即类似下面:

<activity android:name=".activity.SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
我这边就是SplashActivity,打开它,在setContentView方法前添加一段代码:
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (!isTaskRoot()) {
            finish();
            return;
        }
        setContentView(R.layout.activity_splash);
    }
即if(...){...},这一段是为了解决从桌面点击图标进入应用时,先检查当前栈中是否有activity,即后台是否还有界面存在,若有的话,就不开启启动页。

2、找到主Activity,即一般的MainActivity,在类中添加:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
            moveTaskToBack(true);
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
即检查到用户点按返回键要退出到桌面时,不让activity被finish掉,而是调用moveTaskToBack(true)将activity移到后台,方便下次开启应用时,直接进入此界面。



猜你喜欢

转载自blog.csdn.net/qq_28484355/article/details/79225207
今日推荐