在特定活动中隐藏AlertDialog

时间:2015-12-02 01:46:15

标签: java android mobile alert

我有一个Quote应用程序。当我打开应用程序MainActivity时,如果服务器端更新了新数据,则会显示一个AlertDialog转到SettingsActivity。如果应用已在SettingsActivity上,则需要一段时间才能显示,但仍然显示AlertDialog转到SettingsActivity

我希望阻止AlertDialog显示在SettingsActivity中,但会继续显示在其他活动中。我的AlertDialog代码如下。我怎么能这样做?

public class UpdatesDialogActivity extends Activity {

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

        AlertDialog.Builder builder = new AlertDialog.Builder(UpdatesDialogActivity.this);
        builder.setTitle("Download New Status");
        builder.setMessage("There Are New Status Arrived. Push Download Button From Settings.");

        builder.setPositiveButton("Settings", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int id) {
                Intent intent = new Intent(UpdatesDialogActivity.this, SettingsActivity.class);
                finish();
                startActivity(intent);
            }

        });

        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int id) {
                finish();
            }

        });

        builder.setOnKeyListener(new OnKeyListener() {
            @Override
            public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP)
                    finish();
                return false;
            }
        });

        builder.show();
    }

    // ==============================================================================

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();

    }


}

1 个答案:

答案 0 :(得分:0)

您可以进行'instanceof'检查,查看当前活动是否为设置。

if(activity instanceof SettingsActivity){
//don;t show dialog
}else{
//show dialog
}

希望这会有所帮助。