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);
}
}
}
}
试试这个代码
活动方面需要FLAG_ACTIVITY_NEW_TASK标志 – Husky 2011-04-22 12:41:42
没有必要,如果你需要的是,那么你可以设置我.setFlag(Intent.FLAG_ACTIVITY_NEW_TASK); – Dharmendra 2011-04-22 12:45:54
我加了i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);但它再次返回null – Husky 2011-04-22 12:47:30