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

我们在用一些常用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移到后台,方便下次开启应用时,直接进入此界面。



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值