我的應用程序接收消息,並具有調度接連每一個具有不同延遲的多個答覆之一。具有大約2000次延遲任務的最佳方式是什麼?由於資源有限,似乎Android不能同時運行那麼多處理程序。許多postDelayed處理程序具有不同延遲(約2.000)
任何想法?
在此先感謝。
代碼簡化:
class TimedTask extends TimerTask { //runs every 10 seconds and checks for new contacts in queue to reply to (contacts can go up to 500 ones)
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(SendMessagesService.this);
String contacts = sp.getString("contacts", ""); //queued by another Thread
String contacts_array[] = contacts.split(",");
for (String contact : contacts_array) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
String message = sp.getString("message1",""); //there are different messages with different delays, depending on which were already sent
ReceiveContactsAdapter mDbHelper = new ReceiveContactsAdapter(SendMessagesService.this);
mDbHelper.open();
mDbHelper.sendMessages(message, contact);
mDbHelper.close();
}
}, delay); //delay depends on which message will be sent
}
}
是有可能使用隊列來解決這個問題? – king
@king隊列會被阻止,因爲不同的任務有不同的延遲時間 – LoveForDroid
請使用您的處理程序(非功能性)的代碼,以便我們瞭解你想要達到什麼樣的想法。 – dipdipdip