BroadCast和Activity之间的数据传输

问题描述:

如何将数据从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); 

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