2015-12-19 5 views
-2

Я пытаюсь реализовать задачу Async, которая получает строку из URL-адреса внутри службы. Я использую startService, который вызывает задачу Async, получить правильную строку, обновить общедоступный контент класса базы данных и вернуться к основному виду деятельности, проблема в том, что адаптер списка, который мне нужно уведомить об изменении в БД, находится на основной деятельности, и у меня нет доступа к ней из Сервиса, я aa noobie, поэтому я не знаком с тем, что лучше использовать, запускать или связывать службу для этой работы, любые предложения?Создание задачи Async внутри службы

спасибо

+0

Вы можете использовать 'BroadcastReceiver' для этого. –

ответ

0

Вы можете использовать BroadcastReceiver: В вашей деятельности:

@Override 
public void onResume() { 
    super.onResume(); 

    // Register mMessageReceiver to receive messages. 
    LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, 
     new IntentFilter("mybroadcast")); 
} 

// handler for received Intents for the "my-event" event 
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    // Extract data included in the Intent 
    String message = intent.getStringExtra("message"); 
    Log.d("receiver", "Got message: " + message); 
    } 
}; 

@Override 
protected void onPause() { 
    // Unregister since the activity is not visible 
    LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver); 
    super.onPause(); 
} 

И Broadcast от использования услуг:

Intent intent = new Intent(); 
intent.setAction("mybroadcast"); 
sendBroadcast(intent) 
Смежные вопросы