Android:无法从另一个类访问公共静态函数或公共变量

时间:2013-02-16 11:36:53

标签: java android broadcastreceiver

以下是'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();

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

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

异步任务未返回这些值。

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

希望能帮助那些犯同样错误的人。