0
我試圖從一個活動,從服務器獲取數據,並嘗試使用廣播接收器獲取另一個活動中的數據,但廣播接收器類沒有被調用,我有意圖服務註冊我的服務類清單還我的廣播接收器類不被稱爲
這裏是我的代碼來啓動服務
Intent intent = new Intent(LoginActivity.this, MyWebRequestService.class);
startService(intent);
類MyWebRequestService
//inside on handle intent
new AsynchCall().execute();
Intent broadcastIntent = new Intent();
broadcastIntent.setAction(MyWebRequestReceiver.PROCESS_RESPONSE);
broadcastIntent.addCategory(Intent.CATEGORY_DEFAULT);
//here I am getting the data in my arraylist
broadcastIntent.putStringArrayListExtra("namelist", servicelist);
sendBroadcast(broadcastIntent);
的活動,我想收到我的數據
IntentFilter filter =IntentFilter(MyWebRequestReceiver.PROCESS_RESPONSE);
filter.addCategory(Intent.CATEGORY_DEFAULT);
receiver = new MyWebRequestReceiver();
registerReceiver(receiver, filter);
在相同的活動我已經寫了我的廣播接收器類
public class MyWebRequestReceiver extends BroadcastReceiver
{
public static final String PROCESS_RESPONS = "com.rentpro.PROCESS_RESPONSE";
@Override
public void onReceive(Context context, Intent intent)
{
listofnames = intent.getStringArrayListExtra("namelist");
}
}
A也請確保你的應用不會通過調用'unregisterReceiver()'來泄漏接收者,最好是在你的activity的onPause()方法中。 – Siri0S
是的,我已經在onPause中調用了它,但是如何在sendBroadcast(broadcastIntent)之前調用registerReceiver(receiver,filter);在我的情況下,我已經參考了這個鏈接[鏈接](http://www.mysamplecode.com/2011/10/android-intentservice-example-using.html) –