我可以在onDestroy()函数中使用AlertDialog吗?

时间:2016-07-24 08:01:18

标签: android android-service alertdialog

我的想法是,当销毁应用程序时,我想在我的应用程序崩溃后向他们显示警报对话框。我只是练习,我认为可以做到也许我的方式很糟糕,但我做了这个,它不工作.code在下面:

公共类MainActivity扩展了AppCompatActivity实现

View.OnClickListener {
    Button btnStart, btnStop;
    Intent intent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnStart = (Button) findViewById(R.id.btnstart);
        btnStart.setOnClickListener(this);
        btnStop = (Button) findViewById(R.id.btnstop);
        btnStop.setOnClickListener(this);

        intent = new Intent(MainActivity.this, MyService.class);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.btnstart:
                startService(intent);
                Toast.makeText(MainActivity.this, "Service Started", Toast.LENGTH_SHORT).show();
                break;

            case R.id.btnstop:
                stopService(intent);
                Toast.makeText(MainActivity.this, "Service Stopped", Toast.LENGTH_SHORT).show();
                break;
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setPositiveButton("yes", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                finish();
            }
        }).setNegativeButton("No", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                stopService(intent);
            }
        }).setMessage("Do you want to play Music in Background?").setTitle("Wait please...").create().setCancelable(false);
        builder.show();
    }
}

1 个答案:

答案 0 :(得分:3)

您不应该尝试在onDestroy()中显示任何内容。 如果您想在关闭应用程序之前提醒用户,可以覆盖“后退”按钮。

@Override
public void onBackPressed() {
    ...
}