为什么单击具有意图功能的按钮时我的手电筒会关闭?
Why is my Flashlight Turning off when clicking a button with intent function?
我是 android 编程的新手,我不明白为什么我的手电筒在单击一个按钮时会关闭,该按钮会启动另一个带有 Intent
的 Activity
?我搜索过这个但没有发现类似的东西。我查看了其他人的想法,但最接近的是使用 Service
而不是我的主要 activity 中的 Activity
。可以将我的 Activity
更改为 Service
还是另一种解决方法?
tbOnOff = (ToggleButton) findViewById(R.id.togglebutton);
tbOnOff.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
if (camera == null) {
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
}
} else {
if (camera != null) {
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.release();
camera = null;
}
}
}
});
boolean checkFlash = context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_CAMERA_FLASH);
if (!checkFlash) {
tbOnOff.setEnabled(false);
Toast.makeText(context, "LED Not Available!", Toast.LENGTH_LONG)
.show();
}
}
// release camera when onPause called
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
if (camera != null) {
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.release();
camera = null;
}
}
public void send(View arg1) {
Intent i = new Intent(this, InformationActivity.class);
startActivity(i);
}
这是我的 LED 灯代码和 Intent。
当您开始一个新的 Activity
时,它会立即被带到前台,这意味着您原来的 Activity
也会立即暂停。由于您要关闭 onPause()
中的手电筒,所以这就是它的作用。
关于你的另一个问题,是的,如果你想让手电筒独立于 Activity
lifecycle,Service
将是一种方法,因为您希望独立于 Activity
个生命周期的任何其他内容。
我是 android 编程的新手,我不明白为什么我的手电筒在单击一个按钮时会关闭,该按钮会启动另一个带有 Intent
的 Activity
?我搜索过这个但没有发现类似的东西。我查看了其他人的想法,但最接近的是使用 Service
而不是我的主要 activity 中的 Activity
。可以将我的 Activity
更改为 Service
还是另一种解决方法?
tbOnOff = (ToggleButton) findViewById(R.id.togglebutton);
tbOnOff.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
if (camera == null) {
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
}
} else {
if (camera != null) {
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.release();
camera = null;
}
}
}
});
boolean checkFlash = context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_CAMERA_FLASH);
if (!checkFlash) {
tbOnOff.setEnabled(false);
Toast.makeText(context, "LED Not Available!", Toast.LENGTH_LONG)
.show();
}
}
// release camera when onPause called
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
if (camera != null) {
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.release();
camera = null;
}
}
public void send(View arg1) {
Intent i = new Intent(this, InformationActivity.class);
startActivity(i);
}
这是我的 LED 灯代码和 Intent。
当您开始一个新的 Activity
时,它会立即被带到前台,这意味着您原来的 Activity
也会立即暂停。由于您要关闭 onPause()
中的手电筒,所以这就是它的作用。
关于你的另一个问题,是的,如果你想让手电筒独立于 Activity
lifecycle,Service
将是一种方法,因为您希望独立于 Activity
个生命周期的任何其他内容。