2011-04-22 120 views
0

如何將數據從BroadcastReceiver傳輸到活動? 我試圖與意圖,但它返回null。BroadCast和Activity之間的數據傳輸

MyBroadcastReceiver class: 

public class MyBroadcastReceiver extends BroadcastReceiver { 

    private static final String TAG = "MyBroadcastReceiver"; 
    @Override 
     public void onReceive(Context context, Intent intent) { 

     ...................................... 
      ...................................... 

     String phoneNumber = extras.getString(TelephonyManager.EXTRA_INCOMING_NUMBER); 
      Intent i = new Intent(context, CalendarCall.class); 
     i.putExtra("number", phoneNumber); 
      (startActivity(i)-> i can't start Activity under BroadcastReceiver,what is another way to do that?) 
     Log.d(TAG, phoneNumber); 
       } 
     } 
} 

} 

主要活動:

Intent intent = getIntent(); 
     String number = intent.getStringExtra("number"); 
     Log.d(TAG, "Number: " + number); 

回答

1
MyBroadcastReceiver class: 

public class MyBroadcastReceiver extends BroadcastReceiver { 

    private static final String TAG = "MyBroadcastReceiver"; 
    @Override 
     public void onReceive(Context context, Intent intent) { 

     ...................................... 
      ...................................... 

     String phoneNumber = extras.getString(TelephonyManager.EXTRA_INCOMING_NUMBER); 
      Intent i = new Intent(context, CalendarCall.class); 
     i.putExtra("number", phoneNumber); 
     context.startActivity(i); 
     Log.d(TAG, phoneNumber); 
       } 
     } 
} 

} 

試試這個代碼

+0

活動方面需要FLAG_ACTIVITY_NEW_TASK標誌 – Husky 2011-04-22 12:41:42

+0

沒有必要,如果你需要的是,那麼你可以設置我.setFlag(Intent.FLAG_ACTIVITY_NEW_TASK); – Dharmendra 2011-04-22 12:45:54

+0

我加了i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);但它再次返回null – Husky 2011-04-22 12:47:30