簡體   English   中英

連續方法調用未在Broadcast Receiver Android中執行

[英]Consecutive method calls not executing in Broadcast Receiver Android

我有一個廣播接收器,它按照AlarmManager的預定時間間隔觸發。

現在,讓我們說,我有一個名為“ A”的服務和一個名為“ B”的廣播接收器。 我的AlarmManager在服務類A中,在該服務類中計划了“ B”的調用。

現在,當觸發警報時間並調用廣播接收機時,“ B”中有2個連續的方法調用。 這些方法包含在類“ A”中,但從“ B”中調用。

問題是只有一行代碼在“ B”中被調用,並且不會返回到下一行代碼。 我不明白為什么....請幫助。

代碼為“ A”類,如下所示:

    int interval = 60 * 1000;

    Calendar now = Calendar.getInstance();
    AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

    intentLocationUpdateAlarm = new Intent(this, B.class);
    pendingIntentLocationUpdateAlarm = PendingIntent.getBroadcast(this, 1919, intentLocationUpdateAlarm, PendingIntent.FLAG_CANCEL_CURRENT);

    manager.set(AlarmManager.RTC_WAKEUP, now.getTimeInMillis()+(interval),
            pendingIntentLocationUpdateAlarm);

在接收方“ B”中,如下所示:

 @Override
 public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub

    //Stop periodic updates here and then start again
    A.getInstance().stopPeriodicUpdate();

    A.getInstance().startPeriodicUpdates();
}

在類B的代碼中,將執行對startPeriodicUpdate的第一個方法調用,但不會返回執行下一行方法。

似乎是您的stopPeriodicUpdate()方法在結尾處有return語句,請檢查一次,如果是,請將其刪除並將其設為void方法。

無論如何,我建議您使用自己的自定義事件管理器來觸發事件,而不是使用廣播管理器來進行更頻繁的更新(即使您可以嘗試使用第三方庫,例如Android EventBus https://github.com/greenrobot/EventBus

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM