请教Activity任务栈的问题

202005021116 应用层 2019-04-16 04:37:52
在MainActivity按物理返回键,第一次按的时候会重新生成一个MainActivity,第二次的时候才会退出APP,想要实现按一次返回退出APP,使用过两种解决方案不行:
1.MainActivity使用singleTop或singleTask启动模式无效;
2.使用onBackPress代替onKeyDown也不行
下面是MainActivity类,和继承的BaseActivity,还有BaseApplication类
MainActivity:
public class MainActivity extends BaseActivity implements View.OnClickListener {

long waitTime = 2000;
long touchTime = 0;

@Override
protected View initView(Bundle savedInstanceState) {
View view = View.inflate(this, R.layout.activity_main, null);
ButterKnife.bind(this, view);
frameLayout.addView(view);
mToolbar.setVisibility(View.GONE);
String uid = UserManager.getInstance().getUid();
Log.d(TAG, "initView: 1026= " + uid);
return view;
}

@Override
protected void initData() {

}

@Override
protected void initEvent() {
mShoot.setOnClickListener(this);
}

private void setLayout() {

}

BaseActivity:
[code=java]public abstract class BaseActivity extends AppCompatActivity {


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
beforeOnCreate(savedInstanceState);
super.onCreate(savedInstanceState);
hideStatusBar(false); //隐藏顶部电量,时间等信息
BaseApplication.getApplication().addActivity(this);//记录当前应用的Activity,用于退出整个应用
getSupportActionBar().hide();//隐藏顶部ActionBar,继承AppCompatActivity需要使用getSupportActionBar,getActionBar方法在继承Activity使用
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}

}

}

BaseApplication:
public class BaseApplication extends MultiDexApplication {

@Override
public void onCreate() {
super.onCreate();
sApp=this;
// UserManager.init(this);
application=this;
ToastUtil.init(this);
TXUGCBase.getInstance().setLicence(this, ugcLicenceUrl, ugcKey);
UserManager.init(this);
// Logger.addLogAdapter(new AndroidLogAdapter());

}

public static Context getContext() {
return sApp.getApplicationContext();
}

public static BaseApplication getApplication() {
return application;
}

public void addActivity(Activity activity) {
mList.add(activity);
}

public void exit() {
try {
for (Activity activity : mList) {
if (activity != null)
activity.finish();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
System.exit(0);
}
}

public void onLowMemory() {
super.onLowMemory();
System.gc();
}

}
...全文
251 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
王能 2019-04-17
  • 打赏
  • 举报
回复
写的乱七八糟,各种没用的判断和内存泄漏,我就不一一指出了
jzp12 2019-04-16
  • 打赏
  • 举报
回复
第一次按的时候会重新生成一个MainActivity
》》这是谁在startActivity?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧