学无先后,达者为师

网站首页 编程语言 正文

启动Activity但是不显示界面

作者:会游泳的猫! 更新时间: 2022-08-30 编程语言

方法一:

参考链接

方法二:

1.在Application类中定义一个变量,例如:

public class BaseApplication extends Application {
...
    public static boolean isFirstLaunch = true;
...
}

2.使用Activity.moveTaskToBack(true)将Activity退至后台

//在Activity中通过“isFirstLaunch”变量判断是否是第一次启动activity,是就把activity退至后台

import static xxx.Application.isFirstLaunch;

@Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        handler = new UiHandler(this);
    }

@Override
    protected void onStart() {
        super.onStart();
        if (isFirstLaunch) {
            LogUtil.info(TAG, "first launch");
            isFirstLaunch = false;
            handler.sendMessageDelayed(MessageUtil.createMsg(3), 100);
        }
    }

static class UiHandler extends Handler {
        WeakReference<MainActivity> mActivity;

        UiHandler(MainActivity activity) {
            mActivity = new WeakReference<>(activity);
        }

        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            MainActivity mainActivity = mActivity.get();
            String strMsgSr = "";
            if (msg.obj != null) {
                strMsgSr = msg.obj.toString();
            }
            switch (msg.arg1) {
                case 3:
                    LogUtil.info(TAG, "exit auto when first boot");
                    mainActivity.moveTaskToBack(true);             //在activity中调用 moveTaskToBack (boolean nonRoot)方法即可将activity 退到后台,注意不是finish()退出
                    break;
            }
        }
    }

原文链接:https://blog.csdn.net/ABCDEF123236/article/details/126593065

栏目分类
最近更新