MainActivity 类型未定义方法 getParcelableArrayList(String)

The method getParcelableArrayList(String) is undefined for the type MainActivity

我想通过使用 Parcelable 接口将数据从我的 BroadcastReceiverListener class 中的 onReceive() 传递到 MainActivity 中的 onNewIntent() 方法。我怎样才能让它工作?以及如何获取 onNewIntent() 中的数据?

感谢任何帮助。

BroadcastReceiverListener class:

public class BroadcastReceiverListener extends BroadcastReceiver implements
  Parcelable {

 @Override
 public void onReceive(Context context, Intent intent) {
  if (intent.getAction().equals(
    android.net.wifi.WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {

   WifiManager wifiManager = (WifiManager) context
     .getSystemService(Context.WIFI_SERVICE);
   final List<ScanResult> results = wifiManager.getScanResults();
   if (results != null) {
    ArrayList<ScanResult> updatedResults = new ArrayList<ScanResult>();
    for (int i = 0; i < results.size(); i++) {
     String ssid = results.get(i).SSID;
     if (ssid.startsWith("KD")) {
      updatedResults.add(results.get(i));
     }
    }

    Intent updateIntenet = new Intent(context, MainActivity.class);
    updateIntenet.putParcelableArrayListExtra("broadcast_event",
      updatedResults);
    context.startActivity(updateIntenet);

   }

  }

 }

 @Override
 public int describeContents() {
  // TODO Auto-generated method stub
  return 0;
 }

 @Override
 public void writeToParcel(Parcel dest, int flags) {
  // TODO Auto-generated method stub

 }

}

这个方法在MainActiity中:

 @Override
     protected void onNewIntent(Intent intent) {
         String intentResult = intent.getStringExtra("broadcast_event");
         if (intentResult != null) {
             List<ScanResult> results = getParcelableArrayList(intentResult);
             String a = deliverBestAccessPoint(results);
             textWifi.setText(a.toString());
         } else {
             textWifi.setText("No route is available.");
         }
     }

您应该根据收到的意图调用 getParcelableArrayListExtra:

List<ScanResult> results = intent.getParcelableArrayListExtra("broadcast_event");