1

「alertDialog」を表示するには、健康状態が 20 を下回った後、毎秒「1」ずつ健康状態が低下するようにする必要があります。コードにエラーはありません。「ヘルス」が境界/制限を超えた後、問題がクラッシュしています。アプリケーションがクラッシュしています。なぜそれが起こっているのかわかりません。助けてくれる人はいますか? また、ブール値を使用した「alertDialog」の一度のショーがあることを確認しますが、役に立ちません...アドバイスに感謝します:)

コード:

new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                Health -= 1;
                if (Health <= 20) {
                    if (!canSeeWarnDialog) {
                        final AlertDialog alertDialog2 = new AlertDialog.Builder(
                                MainActivity.this).create();
                        alertDialog2.setTitle("Im hungry");
                        alertDialog2.setMessage("The dog health is going low "
                                + "\ngive him some food");
                        alertDialog2.setButton("Got it",
                                new DialogInterface.OnClickListener() {

                                    @Override
                                    public void onClick(DialogInterface dialog,
                                            int which) {
                                        alertDialog2.cancel();
                                    }
                                });
                        alertDialog2.show();
                        canSeeWarnDialog = true;
                        return;
                    }
                }
            }
        }, 1000, 1000);//TimeUnit.SECONDS.toMillis(1));
4

2 に答える 2