BroadcastReceiver 设置自己的上下文
BroadcastReceiver setting own context
在像这样创建 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 都是空的,有解决办法吗?
试试这个我的朋友
public class MyReceiver extends BroadcastReceiver {
Context mContext;
public MyReceiver() {
super();
}
@Override
public void onReceive(Context context, Intent intent) {
mContext = context;
if (mContext != null) {
log.d(TAG, "Context not null")
}else{
log.d(TAG, " null Context ")
}
}
}
像这样创建新的广播对象
MyReceiver receiver = new MyReceiver(this);
问题在于在清单中声明接收器,而它应该只在片段中声明,更改后,一切正常。
感谢您的帮助。
在像这样创建 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 都是空的,有解决办法吗?
试试这个我的朋友
public class MyReceiver extends BroadcastReceiver {
Context mContext;
public MyReceiver() {
super();
}
@Override
public void onReceive(Context context, Intent intent) {
mContext = context;
if (mContext != null) {
log.d(TAG, "Context not null")
}else{
log.d(TAG, " null Context ")
}
}
}
像这样创建新的广播对象
MyReceiver receiver = new MyReceiver(this);
问题在于在清单中声明接收器,而它应该只在片段中声明,更改后,一切正常。 感谢您的帮助。