更改SharedPreferences后的AlertDialog onBackPressed - 没有任何反应

时间:2014-05-01 09:29:16

标签: android boolean sharedpreferences alertdialog

我正在使用Exit和Rate App按钮创建AlertDialog onBackPressed。 AlertDialog只会显示一次人员费用应用程序,该部分工作正常。 但问题是,在有人对应用程序进行布尔更改后,应用程序将不会显示AlertDialog,因此onBackPressed将被禁用。我怎么能改变呢? 这是我的代码:

 @Override
    public void onBackPressed() {

        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        if (!prefs.getBoolean("firstTime", false)) {
    new AlertDialog.Builder(this)
    .setCancelable(false)
        .setTitle("Rate us")
        .setMessage("Thank you for choosing our app! We will be very thankful if you can spend your valuable time to give this app a good rate in Google Play market!")
        .setPositiveButton("Rate us", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) { 
                Uri uri = Uri.parse("market://details?id=" + getPackageName());
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(intent);

    SharedPreferences.Editor editor = prefs.edit();
          editor.putBoolean("firstTime", true);
          editor.commit();
            }
         })
        .setNegativeButton("Exit", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) { 
                ((Activity) context).finish();
            }
         })

         .show();


        };

    }


  }

我添加了

if (!prefs.getBoolean("firstTime", true)){
            ((Activity) context).finish();
}

但它没有做任何事情。 onBackPressed仍然被禁用。 总结:在更改布尔firstTime之后,onBackPressed被禁用,我无法使用该按钮离开/关闭应用程序。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

简单地添加else部分来处理这个:

@Override
    public void onBackPressed() {
        super.onBackPressed();


        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        if (!prefs.getBoolean("firstTime", false)) {
            //show your dialog
        }else{
            super.onBackPressed();
        }
    }