0

これが「MainActivity.java」の宣言です

private static String competition = null;

それに付加価値を与えるセッター関数を作成しました。

public static void setCompetition(String competition1) {
    competition = competition1;
}

同じパッケージから別のクラスの値を取得するためのgetter関数を作成しました。

public static String getCompetition() {
    return competition;
}

ただし、nullを返します。

これが私が関数でそれを使用しようとした方法ですpublicvoidonReceive(Context context、Intent intent){

BroadcastReceiverを拡張するAlarmNotifyクラスで:

       final String competition = MainActivity.getCompetition();
4

2 に答える 2

0

これが私がした間違いです:私はデータを取得するのに数秒かかるネットワークベースの非同期タスクを呼び出していました。バックグラウンドで動作します。

これらの値にアクセスしようとしている別の関数を呼び出していました。非同期タスクが実行される前でさえ、それは即座に起動されていました。それがnullを返していた理由です。

非同期タスクはそれらの値を返していませんでした。

最終的には、他の関数の呼び出しをAsyncの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 に答える