以下是'MainActivity.java'中的声明
private static String competition = null;
我已经创建了一个增加值的setter函数。
public static void setCompetition(String competition1) {
competition = competition1;
}
我已经创建了一个getter函数来从同一个包中获取另一个类的值:
public static String getCompetition() {
return competition;
}
但是它返回null。
以下是我尝试在函数中使用它的方法 public void onReceive(Context context,Intent intent){
在类AlarmNotify中扩展BroadcastReceiver:
final String competition = MainActivity.getCompetition();
答案 0 :(得分:0)
我认为你没有在任何地方调用setCompetition
。要验证这一点,请尝试使用这段代码 -
public static void setCompetition(String competition1) {
System.out.println("Set competition to "+competition1);
competition = competition1;
}
如果您没有看到任何打印的消息,则不会调用setCompetition
。确保正在调用它。
答案 1 :(得分:0)
这是我做的错误: 我正在调用基于网络的异步任务,这需要几秒钟来检索数据。它在后台工作。
我正在调用另一个试图访问这些值的函数。即使在异步任务运行之前,它也会被即时触发。这就是它返回null的原因。
异步任务未返回这些值。
最终我将调用放在Async的postExecute方法中的另一个函数中。
希望能帮助那些犯同样错误的人。