【问题标题】:creating an Async task inside a service在服务中创建异步任务
【发布时间】:2015-12-19 10:54:56
【问题描述】:

我正在尝试实现一个从服务中的 url 获取字符串的异步任务。 我正在使用调用异步任务的startedService获取正确的字符串,更新公共数据库类内容并返回主活动,问题是我需要通知数据库更改的列表适配器位于主活动,我无法从服务中访问它,我是一个菜鸟,所以我不熟悉什么更好地使用、启动或绑定该工作的服务,有什么建议吗?

谢谢

【问题讨论】:

  • 您可以使用BroadcastReceiver

标签: android android-asynctask android-service


【解决方案1】:

您可以使用 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();
} 

并从服务使用广播:

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

【讨论】:

    猜你喜欢
    • 2015-07-04
    • 1970-01-01
    • 2015-10-30
    • 2016-11-23
    • 2013-11-14
    • 2016-01-15
    • 2013-08-24
    相关资源
    最近更新 更多