Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 应用程序警报导致奇怪的错误,直到我按下后退按钮_Java_Android_Alarm_Android Alarms_Alarms - Fatal编程技术网

Java 应用程序警报导致奇怪的错误,直到我按下后退按钮

Java 应用程序警报导致奇怪的错误,直到我按下后退按钮,java,android,alarm,android-alarms,alarms,Java,Android,Alarm,Android Alarms,Alarms,我的应用程序中有一个警报,每10分钟通知我一次。它运行良好,但每当警报通知我,我的应用程序名称将显示为一个框在屏幕中部,我不能按下任何东西,直到我按下后退按钮。真奇怪 这是我的代码: // Alert Code final AlertDialog alertDialog = new AlertDialog.Builder(this).create(); alertDialog.setTitle("Confirmation"); alertDialog.setMes

我的应用程序中有一个警报,每10分钟通知我一次。它运行良好,但每当警报通知我,我的应用程序名称将显示为一个框在屏幕中部,我不能按下任何东西,直到我按下后退按钮。真奇怪

这是我的代码:

    // Alert Code
    final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle("Confirmation");
    alertDialog.setMessage("Are you sure you want to send this report?");
    run(gotDataS);

    // Timer Code
    pendingIntent = PendingIntent.getService(CreateNewForm_3.this, 0,
            new Intent(NewForm_3.this, MyAlarmService.class), 0);
    Send.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            alertDialog.setButton("OK",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                                        int which) {

                        Toast.makeText(NewForm_3.this, "Sent", 0)
                                .show();

                        long firstTime = SystemClock.elapsedRealtime();
                        am = (AlarmManager) getSystemService(ALARM_SERVICE);
                        am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                               firstTime + 10 * 1000, 30 * 1000, pendingIntent);
                        // firstTime Will be the current_time + ( 10 * 60 * 1000)  =)
                        // 10* 1000 will be (10 * 60 * 1000)
                        new Handler().postDelayed(new Runnable() {
                            public void run() {
                                bCancel.performClick();
                            }
                        }, (30 * 1000));
                        // ( 30 * 1000) will be firstTime + ( 2- duration)

                        Intent toRecentCases = new Intent(CreateNewForm_3.this,
                                LMPActivity.class);
                        startActivity(toRecentCases);
                    }
                });

            alertDialog.setButton2("No",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                            int which) {
                        // Here you can add functions
                    }
                });

            alertDialog.setIcon(android.R.drawable.ic_dialog_alert);
            alertDialog.show();
        }

    });


    bCancel.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // TODO Auto-generated method stub
            am.cancel(pendingIntent);
        }
    });

    //For Notification -3-
    final AlertDialog alertDialog3 = new AlertDialog.Builder(this).create();
    alertDialog3.setTitle("Confirmation");
    alertDialog3.setMessage("Are you sure you want to quite?");

    // Press cancel button it will move user to actvity p
    Cancelb.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            alertDialog3.setButton("OK",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                            int which) {

                        Intent toRecentCases = new Intent(NewForm_3.this,
                                                          LMPActivity.class);
                        startActivity(toRecentCases);
                    }
                });

            alertDialog3.setButton2("No",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,
                                int which) {
                            // Doing nothing!
                        }
                    });

            alertDialog3.setIcon(android.R.drawable.ic_dialog_alert);
            alertDialog3.show();
        }
    });

}
<activity
    android:name=".ShowingDialog"
    android:theme="@android:style/Theme.Dialog" />
显示对话活动

public class ShowingDialog extends Activity {

    boolean b;
    String CancelMsg;

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

        //For Notification -1-
        final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
        alertDialog.setTitle("Confirmation");
        alertDialog.setMessage("Do you really want it?");

        // For Notification -2-
        final AlertDialog alertDialog2 = new AlertDialog.Builder(this).create();
        alertDialog2.setTitle("Confirmation");
        alertDialog2.setMessage("Are you sure you want it?");

        alertDialog.setButton("yes", new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int which) {
               Intent intent= new Intent(ShowingDialog.this,MyPage.class);
               startActivity(intent);
           ;
           }
        });

        alertDialog.setButton2("no",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,
                        int which) {

                    alertDialog2.setButton("yes", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            // Here you can add functions
                            // Sending a Message to server that the plaintiff found the case
                            // For Sending SMS with cancel Request
                            // Getting Case_ID + putting it inside CancelMsg
                               CancelMsg = "Case_ID cancel";
                            if (!b) {
                                try {
                                    sendSMS("5556", CancelMsg);
                                    Toast.makeText(ShowingDialog.this, "Sent", Toast.LENGTH_LONG)
                                            .show();
                                } catch (Exception e) {
                                    // TODO Auto-generated catch block
                                    Toast.makeText(ShowingDialog.this, e.getMessage(),
                                            Toast.LENGTH_LONG).show();
                                }
                            }
                        }
                    });

                    alertDialog2.setButton2("no", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            // Here you can add functions
                            // Do nothing
                        }
                    });

                    alertDialog2.setIcon(android.R.drawable.ic_dialog_alert);
                    alertDialog2.show();
                }
            });

            alertDialog.setIcon(android.R.drawable.ic_dialog_alert);
            alertDialog.show();
        }

        public void sendSMS(String number, String msg) throws Exception {
            if (!b) {
                SmsManager smsManager = SmsManager.getDefault();
                smsManager.sendTextMessage(number, null, msg, null, null);
            }
            b = true;
        }
    }
在清单中:

    // Alert Code
    final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle("Confirmation");
    alertDialog.setMessage("Are you sure you want to send this report?");
    run(gotDataS);

    // Timer Code
    pendingIntent = PendingIntent.getService(CreateNewForm_3.this, 0,
            new Intent(NewForm_3.this, MyAlarmService.class), 0);
    Send.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            alertDialog.setButton("OK",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                                        int which) {

                        Toast.makeText(NewForm_3.this, "Sent", 0)
                                .show();

                        long firstTime = SystemClock.elapsedRealtime();
                        am = (AlarmManager) getSystemService(ALARM_SERVICE);
                        am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                               firstTime + 10 * 1000, 30 * 1000, pendingIntent);
                        // firstTime Will be the current_time + ( 10 * 60 * 1000)  =)
                        // 10* 1000 will be (10 * 60 * 1000)
                        new Handler().postDelayed(new Runnable() {
                            public void run() {
                                bCancel.performClick();
                            }
                        }, (30 * 1000));
                        // ( 30 * 1000) will be firstTime + ( 2- duration)

                        Intent toRecentCases = new Intent(CreateNewForm_3.this,
                                LMPActivity.class);
                        startActivity(toRecentCases);
                    }
                });

            alertDialog.setButton2("No",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                            int which) {
                        // Here you can add functions
                    }
                });

            alertDialog.setIcon(android.R.drawable.ic_dialog_alert);
            alertDialog.show();
        }

    });


    bCancel.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // TODO Auto-generated method stub
            am.cancel(pendingIntent);
        }
    });

    //For Notification -3-
    final AlertDialog alertDialog3 = new AlertDialog.Builder(this).create();
    alertDialog3.setTitle("Confirmation");
    alertDialog3.setMessage("Are you sure you want to quite?");

    // Press cancel button it will move user to actvity p
    Cancelb.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            alertDialog3.setButton("OK",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                            int which) {

                        Intent toRecentCases = new Intent(NewForm_3.this,
                                                          LMPActivity.class);
                        startActivity(toRecentCases);
                    }
                });

            alertDialog3.setButton2("No",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,
                                int which) {
                            // Doing nothing!
                        }
                    });

            alertDialog3.setIcon(android.R.drawable.ic_dialog_alert);
            alertDialog3.show();
        }
    });

}
<activity
    android:name=".ShowingDialog"
    android:theme="@android:style/Theme.Dialog" />

您似乎没有重载back语句,因此,当您按下back按钮时,您将返回到后台堆栈。Android文档中有关于这方面的更多信息:


实际上我不明白?你能给我提供密码吗?我怎么做?我们的工作不是帮助你。礼貌会给你带来更多的帮助,而不是对那些给你建议的人大喊大叫。你不会发现有很多人可以编写代码来解决这个问题(尤其是在我们面前没有所有的代码可以处理的情况下)。我的理论是,你的应用程序正在重新启动,你的应用程序中的方框是某种启动屏幕(我假设方框和名称是你创建的某个屏幕)。我之前链接的后台堆栈只是向您显示,通过回击退出应用程序,这就是回击关闭对话框的原因。当MyAlarmService从您的警报接收到意图时,它会做什么?它向我显示“显示对话框”活动,请检查updatea屏幕截图将有助于更好地理解..所以您的问题是看不到按钮?或者你可以看到它们,但不能按它们?请用截图来了解你的问题