我對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