0

私は以下のようなクラスを持っています:

public class FYPSmsReceiverBroadcast extends BroadcastReceiver

SMSメッセージを受信したときにアプリケーションを終了した後、強制終了エラーが発生するため、受信者の登録を解除する必要があります。(何かがまだ SMS をリッスンしているが、アプリが閉じられているために特定のアクティビティにアクセスできないことを示します。エラーは 1 つのテキストを受信した後にのみ発生するようで、2 番目のテキストは強制終了エラーを生成しないようです)

多少似たような質問がいくつかありますが、私が採用した方法を支援できるものはありません. 以下のように onPause を追加しようとしました。

 public void onPause() {


        unregisterReceiver(FYPSmsReceiverBroadcast);
    }

しかし、これにより、Eclipse で次のエラーが発生します。「FYPReceiverBroadcast を変数に解決できません」

ブロードキャスト レシーバーを拡張するクラスの onReceive メソッドで、FYPSpeakerActivity.speakSMSfrom(); を呼び出します。

テキスト読み上げを使用する別のクラスを呼び出す - この行は、SMS の受信時に (アプリケーションが閉じられているにもかかわらず) 呼び出されているように見え、強制終了エラーを作成します。

誰でもアドバイスできますか?

4

1 に答える 1

3

FYPReceiverBroadcastですclass。を渡す必要がありますobject。例を次に示します。

FYPReceiverBroadcast myFYPReceiverBroadcast = new FYPReceiverBroadcast(...);

...

public void onPause() {
     unregisterReceiver(myFYPReceiverBroadcast);
}

これは非常に基本的なプログラミングの概念です。次の記事を読んで違いを理解することをお勧めします。

オブジェクトは、関連する状態と動作のソフトウェア バンドルです。クラスは、オブジェクトの作成元となる青写真またはプロトタイプです。

http://alfredjava.wordpress.com/2008/07/08/class-vs-object-vs-instance/

于 2012-08-10T13:18:55.117 に答える