在我的应用程序中,我通过检索相机对象来访问相机。然后我开始一个不断管理一些数据的服务。在某些情况下,服务会向活动发送广播请求以使用相机对象。
因此,当我的应用程序被最小化时,服务不能再使用相机了。为什么?当我回到我的应用程序时它会崩溃
02-15 18:06:56.100:E / AndroidRuntime(23686):致命异常:主要 02-15 18:06:56.100:E / AndroidRuntime(23686): java.lang.RuntimeException:接收广播Intent时出错{ act = android.intent.action.MAIN flg = 0x10(有额外的)} in com.mkyong.android.MainActivity$1@418e4730
整个堆栈跟踪http://dpaste.com/933015/
因此,服务发送了一个意图android.intent.action.MAIN
但活动从未收到过。{/ p>
我在我的活动中抓住了这样的意图:
@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);
}
当应用程序最小化时,是否有机会捕获意图并访问摄像头?我怎么能这样做?
答案 0 :(得分:3)
如您的堆栈跟踪所示,您已在release()
上调用Camera
,此后Camera
对象不再有效。在getParameters()
之后,您无法在Camera
上致电release()
。