1

私のアプリには 2 つの異なるアクティビティがあり、それらに A と B という名前を付けます。5 分後にアラームをトリガーする時間をアクティビティ A に設定します。アクティビティ B に移動し、そこで 1 分もかからない作業を行います。アクティビティ A に戻ります。ここで起きていることは、アラームが再度登録され、前回の 5 分の代わりに、今から 5 分かかるということです...わかりやすくするために、アクト A - アラームの登録 - トリガーするのに 5 分かかりますビープ音...アクティビティ B、アクト B に移動 - 何かを行います - x 分...アクト A に戻ります - アラームが再度登録されます - ビープをトリガーするまで x+5 分....

上記のシナリオが発生したくありません。x+5 ではなく、5 分だけでアラームをトリガーしたいですか? 何か助けてください。それは本当に私を悩ませています..木曜日からそれをしています...

アクトAで

 AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
            Intent checkIntent = new Intent(getApplicationContext(),Alarm_class.class);
            checkIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            PendingIntent pi = PendingIntent.getBroadcast(this, 0, checkIntent, 0);

            if(PendingIntent.getBroadcast(getBaseContext(), 0, checkIntent, PendingIntent.FLAG_NO_CREATE) != null)
            {
                Log.d("kunal", "Alarm is running");             
                if(log_days_came.equals("Three"))
                {
                     Log.d("kunal","3 days selected to zip log file.");
                    // am.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 180000, pi);
                     am.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 2*60000, pi);
                     Log.d("kunal","after the pending intent 3.");
                 }
    }
            else
            {
                if(log_days_came == null)
                {
                    Toast.makeText(getApplicationContext(), "configure the days to zip log files", Toast.LENGTH_LONG).show();
                    Log.d("kunal", "Alarm is not running");
                }

            }

            if(log_days_came.equals("Three"))
            {
                 Calendar calendar2 = Calendar.getInstance();
                 calendar2.setTimeInMillis(System.currentTimeMillis());
                 calendar2.add(Calendar.MINUTE, 3);   
            }

私は行為 B に行きます...いくつかのことを行います...行為 A に戻ります...トリガーが期限切れになることなく、アラームの OnReceive を再度呼び出します...何が間違っていますか?

4

0 に答える 0