0

这是“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) {

在扩展 BroadcastReceiver 的类 AlarmNotify 中:

       final String competition = MainActivity.getCompetition();
4

2 回答 2

0

这是我犯的错误:我正在调用基于网络的异步任务,这需要几秒钟来检索数据。它在后台工作。

我正在调用另一个试图访问这些值的函数。甚至在异步任务运行之前,它就被立即触发了。这就是它返回 null 的原因。

异步任务没有返回这些值。

最终,我将调用放在异步的 postExecute 方法中的另一个函数。

希望对和我犯同样错误的人有所帮助。

于 2013-02-23T03:47:58.023 回答
0

我认为您没有setCompetition在任何地方调用。要验证这一点,请尝试使用这段代码 -

public static void setCompetition(String competition1) {
    System.out.println("Set competition to "+competition1);
    competition = competition1;
}

如果您没有看到任何打印的消息,则setCompetition没有被调用。确保正在调用它。

于 2013-02-16T11:43:48.903 回答