2015-12-19 49 views
-2

我想实现一个异步任务,从服务中的url获取一个字符串。 我正在使用一个startedService,它调用异步任务获取正确的字符串,更新公共数据库类的内容并返回到主要活动,问题是我需要通知DB中的更改的列表适配器是在主要活动,我没有从服务中获得它,我是一个noobie,所以我不熟悉什么更好的使用,启动或绑定服务的工作,任何sugestions?在服务内创建一个异步任务

谢谢

+0

你可以用'BroadcastReceiver'了点。 –

回答

0

您可以使用广播接收器: 在你的活动:

@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(); 
} 

而从服务利用到广播:

Intent intent = new Intent(); 
intent.setAction("mybroadcast"); 
sendBroadcast(intent)