我对Android很新颖。我正在处理这个项目,它显示了一个应用程序列表,它是一个列表视图中的细节。我从服务器获取应用程序列表作为JsonArray。我使用服务来检索JsonArray和LocalBroadcastManager以将其广播到MainActivity。一切工作正常我。但需要几秒钟才能将数据转化为我的主要活动。这会导致我的应用只显示一个空白屏幕。因此我想添加一个进度对话框来显示,直到我从服务中获得数据。我找到了一个使用Asynctask显示进度对话框的例子(链接:How to use progress dialog in AsyncTask in android)。但我的问题是,我不知道如何在Asyntask DoInBackground方法中实现我的Broascast接收方法。我搜索了一些答案,但找不到任何。在asynctask中实现广播接收器
如果有人能够帮助我解决这个问题,我会非常感激,或者建议我采用另一种方法来做到这一点。由于提前
我的代码:
这是在服务类中的方法是,我使用的JSONArray广播在MainActivity
private void broadcastMessage(String message, String extraType) {
// TODO Auto-generated method stub
Intent intent = new Intent("my-event");
if (message != null){
intent.putExtra(extraType, message);
}
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}
的信息在这里包含了我JSONArray为一个字符串。
下面是我用在MainActivity获取数据的代码:
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,
new IntentFilter("my-event"));
哪里mMessagerReceiver是广播接收器的对象。
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
results = intent.getStringExtra("JSONArray");
Log.e("receiver", "got your message");
}
};
此代码适用于我..但现在我想要broascastReceiver在我的asynctask。有可能吗?
也发布你的代码。 – John 2014-09-22 06:34:56