AlarmManager Issue AlarmApp

لدي سؤال حول alarmmanager ، لقد جعلت التطبيق إنذار بسيط قبل ونجحت ، ولكن أحاول أن نجعلها مرة أخرى مع المزيد من الوظائف. لكن بلادي المعلقة في جهاز الإنذار لا يمكن أبدا أن أطلبه لذا لا يرنم المنبه أبدا. هذه هي شفرتي عند استدعاء هذه الوظيفة مع tobotton عندما يتم التحقق منها

public void onClick(View v) {
    if(toggleButton.isChecked())
    {
        sts = 1;
        alarmDb = new TorasanDatabaseAdapter(context);
        alarmDb.open();
        alarmDb.updateAlarm(alarm._id,sts);
        alarmDb.close();
        Alarm.talarm.setText("aaaaaaaa");
        Intent alarmIntent = new Intent(context, MyAlarmService.class);
        alarmIntent.putExtra("id", alarm._id);
        alarmIntent.putExtra("sound", alarm.sound);
        PendingIntent pendingAlarmIntent = PendingIntent.getService(context, alarm._id, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT );
        AlarmManager alarmManager = (AlarmManager)context.getSystemService(context.ALARM_SERVICE);
        Calendar AlarmCal = Calendar.getInstance();
        int currentstatus = sts;
        alarm.status = currentstatus;
        Log.i("ID", " alarm hour: " + alarm.hour + " minute: " + alarm.minute+" status:"+alarm.status);
        AlarmCal.setTimeInMillis(System.currentTimeMillis());
        AlarmCal.set(Calendar.HOUR_OF_DAY, alarm.hour); //set user selection
        AlarmCal.set(Calendar.MINUTE, alarm.minute);       //set user selection
        AlarmCal.set(Calendar.SECOND, 0);
        alarmManager.set(AlarmManager.RTC_WAKEUP, AlarmCal.getTimeInMillis(),pendingAlarmIntent);
    }

MyAlarmService.java

public class MyAlarmService extends Service {

   public void onCreate() {
      Toast.makeText(this, "MyAlarmService.onCreate()", Toast.LENGTH_SHORT).show();
   }

   public IBinder onBind(Intent intent) {
      return null;
   }

   public void onDestroy() {
      super.onDestroy();
      Toast.makeText(this, "MyAlarmService.onDestroy()", Toast.LENGTH_SHORT).show();
   }

   public void onStart(Intent intent, int startId) {
      super.onStart(intent, startId);
      Bundle extras = intent.getExtras();
      String sound = extras.getString("sound");
      int hour = extras.getInt("hour");
      int minute = extras.getInt("minute");
      int id = extras.getInt("id");
      int status = extras.getInt("status");
      int statusdone = extras.getInt("statusdone");
      int statusdelete = extras.getInt("statusdelete");  
      Toast.makeText(this, "asadsadasdad", Toast.LENGTH_SHORT).show();
      Log.i("ID"," H="+hour+" M="+minute);
      Intent alertIntent = new Intent();
      alertIntent.setClass(this,DisplayNotifications.class);
      alertIntent.putExtra("sound", sound);
      alertIntent.putExtra("id", id);
      alertIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      startActivity( alertIntent );       
   }
}
0

1 إجابة

يجب أن يكون PendingIntent يمكنك تمرير إلى AlarmManager للاستخدام BroadcastReceiver. لقد قمت بتمرير PendingIntent للاستخدام الخدمة.

لن يقوم AlarmManager بتشغيل خدمة لك. كل ما ستفعله هو إرسال نية للبث.

تعديل: إضافة رمز المثال:

يحل محل

PendingIntent.getService()

مع

PendingIntent.getBroadcast()
0
وأضاف
يمكنني استخدام هذا المراجع blog.nelsondev.net/؟p=124 واستخدم getService ، في alarmapp القديم لا توجد مشكلة ، ولكن في التطبيق الجديد لدي مشكلة
وأضاف المؤلف Frank Junior, مصدر
إصلاح المشكلة لقد نسيت خدمة النسخ في androidmanifest
وأضاف المؤلف Frank Junior, مصدر
Android Sudan Community
Android Sudan Community
900 مشارك

كل اقتراحاتكم تتم مشاركتها هنا رابط القناة لتنزيل البرامج والالعاب من هنا @android_sudan تنبيه : القروب غير مختص إطلاقا بي الانترنت المجاني مثل ملفات الحاقن وماشابه يمنع منعا باتا نشر اي ملفات او برامج او اي شيء يتعلق بالانترنت المجان