对话未闭dialog.dismiss()导航backand来回设置屏幕时 [英] Dialog is not closed dialog.dismiss() when navigating backand forth to settings screen

查看:249
本文介绍了对话未闭dialog.dismiss()导航backand来回设置屏幕时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

发生了什么::


  1. 对话框弹出

  2. 我点击确定 - >这使我设置屏幕

  3. 现在,我preSS后退按钮

  4. 当我回来的对话框按钮仍然存在

  5. 我再次单击确定

  6. 它再次让我设置屏幕

  7. 此重复,对话永远不会关闭


什么,我试图做的:


  1. 对话框弹出

  2. 我点击确定 - >这使我设置屏幕

  3. 现在,我preSS后退按钮

  4. 当我回来的对话框按钮应该已经关闭


  @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);        createInstances();
        //设置notitle
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        //设置全屏
         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        的setContentView(R.layout.main_splash_screen);
    }    @覆盖
    保护无效调用onStart(){
        super.onStart();
        开(getResources()的getString(R.string.location_not_enabled));
    }   公共无效开放(字符串custMsg){        AlertDialog.Builder警报=新AlertDialog.Builder(本);
        alert.setMessage(custMsg);
        alert.setCancelable(假);
        alert.setPositiveButton(OK,新DialogInterface.OnClickListener(){
            公共无效的onClick(DialogInterface对话,诠释whichButton){
                locationValidationDone = TRUE;
                dialog.dismiss();
                startActivity(新意图(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
            }
        });
        alert.show();
    }


解决方案

的OnStart使用对话框()请在 OnCreate中使用()

当你回到你的actvity它被称为的OnStart() onresume()

请阅读活动周期生命周期

  @覆盖
保护无效调用onStart(){
    super.onStart();    如果(!start_dialog)
    {
        start_dialog = TRUE;
        开(getResources()的getString(R.string.location_not_enabled));
    }
}

What is happening::

  1. dialog is popped
  2. I click ok - > it leads me to settings screen
  3. Now i press back button
  4. When i come back dialog button is still there
  5. again i click ok
  6. again it leads me to settings screen
  7. this repeats, dialog is never closed


What i am trying to do:

  1. dialog is popped
  2. I click ok - > it leads me to settings screen
  3. Now i press back button
  4. When i come back dialog button should have closed


@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        createInstances();
        //set up notitle 
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        //set up full screen
         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);  
        setContentView(R.layout.main_splash_screen);
    }



    @Override
    protected void onStart() {
        super.onStart();
        open(getResources().getString(R.string.location_not_enabled));
    }

   public void open(String custMsg){

        AlertDialog.Builder alert = new AlertDialog.Builder(this);
        alert.setMessage(custMsg);
        alert.setCancelable(false);
        alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                locationValidationDone=true;
                dialog.dismiss();
                startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
            }
        });
        alert.show();
    }

解决方案

dialog is used inonstart() please use in oncreate(),

when your back to your actvity it's called the onstart() and onresume(),

please read the activity lifecyclelifecycle

@Override
protected void onStart() {
    super.onStart();

    if(!start_dialog)
    {
        start_dialog = true;
        open(getResources().getString(R.string.location_not_enabled));
    }
}

这篇关于对话未闭dialog.dismiss()导航backand来回设置屏幕时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆