내 앱이 카메라 플래시를 사용하지만 다른 앱을 연 다음 내 앱을 다시 시작하면 앱이 다운되는 이유를 모르겠습니다. 내가 일시 중지 및 응용 프로그램에서 이력서를 삽입하지 않았기 때문에 나는 생각한다.플래시 카메라 충돌
public class MainActivity extends ActionBarActivity {
//flag to detect flash is on or off
private boolean isLighOn = false;
private Camera camera;
private Button button;
private LinearLayout rl;
int i=0;
@Override
protected void onStop() {
super.onStop();
if (camera != null) {
camera.release();
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.buttonFlashlight);
rl=(LinearLayout) findViewById(R.id.container);
rl.setBackgroundColor(getResources().getColor(R.color.Black));
Context context = this;
PackageManager pm = context.getPackageManager();
// if device support camera?
if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
Log.e("err", "Device has no camera!");
return;
}
camera = Camera.open();
final Parameters p = camera.getParameters();
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (isLighOn) {
Log.i("info", "torch is turn off!");
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
isLighOn = false;
button.setBackgroundResource(R.drawable.off);
rl.setBackgroundColor(getResources().getColor(R.color.Black));
} else {
Log.i("info", "torch is turn on!");
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
isLighOn = true;
button.setBackgroundResource(R.drawable.on);
rl.setBackgroundResource(R.drawable.check);
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
로그 캣 : 앱이 백그라운드로 이동하게하는 경우
03-29 21:24:51.048: D/AndroidRuntime(27113): Shutting down VM
03-29 21:24:51.048: W/dalvikvm(27113): threadid=1: thread exiting with uncaught exception (group=0x418eeda0)
03-29 21:24:51.058: E/AndroidRuntime(27113): FATAL EXCEPTION: main
03-29 21:24:51.058: E/AndroidRuntime(27113): Process: com.example.torcia, PID: 27113
03-29 21:24:51.058: E/AndroidRuntime(27113): java.lang.RuntimeException: Method called after release()
크래시 스택 추적이 유용합니다. – Philio
나는 logcat을 추가했다. – ddd