我正在四处寻找如何从AbstractActivity
调用BroadCast Receiver
中的方法。我尝试将方法设为静态,并使用classname直接从广播接收器调用它。但是应用程序然后在switch语句中使用nullpointer exception
崩溃,这是静态方法中的。
示例:
public class MainActivity extends AbstractActivity{
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public static void additionDone(Context context,int number){
switch(number)
case 1:
Toast.makeText(context, "First case" , Toast.LENGTH_SHORT).show();
break;
}
}
BroadCast Receiver示例:
public class receiver extends BroadcastReciever{
@Override
public void onReceive(Context context, Intent intent) {
//logic
}
public class anotherMethod(){
MainActivity.additionDone(1,context);
}
}
上面的代码有问题吗?或者是否有一种不同的方法来调用属于abstract activity
的静态方法?
答案 0 :(得分:1)
参数/参数的顺序不匹配。
additionDone(Context context,int number)
MainActivity.additionDone(1,context)
答案 1 :(得分:0)
Context context;
的{{1}}永远不会被分配,
将您的代码更改为此
MainActivity
并在您的收件人中
public static void additionDone(int number, Context context){
...//work with that context
}