0

数分私に捧げてくれてありがとう:)私はそれをしている方法ではおそらく不可能である何かをしようとしています:Dこの(間違った)コードを見てください:

public boolean myFunction() {
        myClassA.setOnResultSet( new myClassB() {

            @Override
            public Boolean onResultSet() {
                // TODO Auto-generated method stub
                return (Boolean)myClassA.getResult();
            }
        });


        Intent myIntent = new Intent(mInstanceContext, MediaPlayerService.class);
        myIntent.setAction("isThatParticularStateTrueOrFalse");
        mInstanceContext.startService(myIntent);

}

サービスに何かを要求するコードの最後の3行があります。このサービスは、質問の結果をシングルトンクラスXに保存して、最初のクラス(私が書いたクラス)がクラスXの結果を読み取れるようにします。ただし、事実が原因であると思われる問題があります。サービスを使用していること。サービスが非常に遅いため、質問の結果をすぐに取得できません。これは、結果が設定されたときにシングルトンクラスがメソッドonResultSet()を呼び出す方法です。(これは私が自分で実装しようとしている一種のリスナーです:D)しかし、関数myFunction()で結果を返すにはどうすればよいでしょうか?残念ながら、結果を返す関数onResultSet()を作成することはできません。これは、私が作成したコードで実行しようとしたことですが、ご覧のとおり、エラーが発生します。エラーが発生する理由は理解できますが、さようなら、ブロードキャスターを使用しないと解決策を見つけることができません(可能であれば使用したくありません)。皆さん、ありがとうございました :)

4

1 に答える 1

0

AsyncTaskを試しましたか?また、メインUIスレッドに更新を投稿する必要がある場合は、ハンドラーを使用できます。

于 2012-09-03T14:02:53.020 に答える