2

在我的应用程序中,我通过检索相机对象来访问相机。然后我启动一个持续管理一些数据的服务。在某些情况下,服务会向 Activity 发送广播请求以使用相机对象。

因此,当我的应用程序最小化时,该服务无法再使用相机。为什么?当我回到我的应用程序时它崩溃了

02-15 18:06:56.100: E/AndroidRuntime(23686): 致命异常: main 02-15 18:06:56.100: E/AndroidRuntime(23686): java.lang.RuntimeException: 接收广播 Intent 时出错 { act=android com.mkyong.android.MainActivity$1@418e4730 中的 .intent.action.MAIN flg=0x10(有附加功能)}

整个堆栈跟踪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对象不再有效。您不能getParameters()调用Cameraafter release()

于 2013-02-15T17:19:58.297 回答