从BroadCast Receiver调用活动方法

时间:2013-12-25 22:50:11

标签: android nullpointerexception android-activity broadcastreceiver

我正在四处寻找如何从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的静态方法?

2 个答案:

答案 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
}