2

私のアプリケーションでは、カメラ オブジェクトを取得してカメラにアクセスします。次に、一部のデータを継続的に管理するサービスを開始します。場合によっては、カメラ オブジェクトを使用するために、サービスがブロードキャスト リクエストをアクティビティに送信します。

したがって、アプリが最小化されると、サービスはカメラを使用できなくなります。なんで?アプリに戻るとクラッシュする

02-15 18:06:56.100: E/AndroidRuntime(23686): FATAL EXCEPTION: main 02-15 18:06:56.100: E/AndroidRuntime(23686): java.lang.RuntimeException: ブロードキャスト インテントの受信エラー { act=android .intent.action.MAIN flg=0x10 (エクストラあり) } in com.mkyong.android.MainActivity$1@418e4730

スタック トレース全体http://dpaste.com/933015/

したがってandroid.intent.action.MAIN、サービスによって送信されたインテントがありますが、アクティビティによって受信されることはありません。

私は自分の活動で次のような意図を捉えています:

    @Override
    protected void onResume() {

        super.onResume();

        IntentFilter intentFilter = new IntentFilter(
                "android.intent.action.MAIN");

        mBroadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
               //access camera
            }
        };

        this.registerReceiver(mBroadcastReceiver, intentFilter);
    }

アプリが最小化されているときに、インテントをキャッチしてカメラにアクセスする機会はありますか? どうやってやるの?

4

1 に答える 1

3

スタック トレースが示すように、 を呼び出しrelease()Camera後、Cameraオブジェクトは無効になります。after をgetParameters()呼び出すことはできません。Camerarelease()

于 2013-02-15T17:19:58.297 に答える