是否可以在創建broadcastreceiver之後設置自己的上下文,如下所示:?BroadcastReceiver設置自己的上下文
public class MyFragment extends Fragment(){
Button myButton;
@Override
onCreate {
myButton = (Button) findview...
myButton.setOnClickListner(myListener);
}
.
.
.
MyListener {
@Override
OnClickListner {
MyBroadCastReceiver receiver = new MyBroadCastReceiver()
receiver.setContext(mContext)
}
}
public static class MyBroadcastReceiver extends BroadcastReceiver {
Context mContext;
void setContext(Context context) {
mContext = context;
}
@Override
public void onReceive(Context context, Intent intent) {
if (mContext!= null){
log.d(TAG, "Context not null")
}
}
}
每次方法的onReceive調用我的mContext爲空,是否有任何解決方案?
請問你可以告訴你想要在這種情況下做什麼?打開一個活動什麼的? –
當然,我想使用DialogFragment,這就是爲什麼我嘗試獲取與活動相關的上下文。 – Nimdokai
請告訴我們爲什麼你需要活動的上下文。一般來說,當接收器被調用時,你不能假定Activity仍然存在,所以你不能安全地將它傳遞給一個活動上下文。這就是它通過自己的原因。唯一的例外是接收者在活動中註冊和未註冊,然後它通常是根據需要訪問活動的匿名子類。 –