Решил проблему в лоб. Создал еще один IntentService сервис с независимым от MainActivity классом requestListener
@Override
protected void onHandleIntent(Intent arg0) {
String user_id=prefs.getString("user_id", "0");
Request updateRequest = new Request(RequestFactory.REQUEST_TWEETS);
updateRequest.put("method", "projects.feed");
updateRequest.put("id", user_id);
updateRequest.put(Tweets.CREATED,
prefs.getString(user_id + "_" + Tweets.CREATED, ""));
requestManager.execute(updateRequest, requestListener);
}
и таймер в MainActivity, который перезагружается на onStart либо после ручного обновления списка.
void startTimer() {
Intent intent = new Intent(context, TestService.class);
PendingIntent pendingIntent = PendingIntent.getService(context, 0,
intent, 0);
AlarmManager am = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
am.cancel(pendingIntent);
long interval_=1000 * 60 * Integer.parseInt(interval);
am.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime()
+ interval_, interval_, pendingIntent);
}
Соответственно если в будущем придется добавлять функционал можно передавать extras сервису, а в нем самом уже, например фабрику запросов.