方法一:
方法二:
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;
}
}
}