سوال در مورد فلش گوشی (حل شد)
حقیقتش شنبه دارم میرم خدمت گفتم این چنروز یه برنامه چراغ قوه بسازم الکی روزام حروم نشه
اقا سرتون رو درد نیارم
ماجرا ازین قراره که برنامه در حالت عادی خوب کار میکنه ولی وقتی ک برنامه رو باز میکنم و بدون استفاده میبندم (مثله زمانی ک یک برنامه رو اشتباهی باز کنید و سریع ببندید) دفه بعد که برنامه رو باز میکنم دیگه هیچی کار نمیکنه انگار همه چی قفل میشه و تا زمانی ک برنامه رو از توی برنامه های در حال اجرا پاک نکنم درست نمیشه!!!
میخواستم ببینم کدی هست ک وقتی با دکمه بک از برنامه میرم بیرون مثله این بشه ک برنامه از توی برنامه های در حال اجرا هم پاک بشه؟؟ که دفه بعد درست کار کنه
امیدوارم منظورهامو رسونده باشم
با onDestroy و onBackPressed هم ور رفتم ولی نشد
رفقا اگه کسی راهکاری داره ممنون میشم کمک کنه
یاحق
کد های اکتیویتی:
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.security.Policy;
public class MainActivity extends AppCompatActivity {
Button btnflash;
private Camera camera;
private boolean isFlashOn;
private boolean hasFlash;
Parameters params;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnflash = (Button) findViewById(R.id.btn_flash);
btnflash.setText("On");
getCamera();
btnflash.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
hasFlash = getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
if (!hasFlash) {
AlertDialog alert = new AlertDialog.Builder(MainActivity.this).create();
alert.setTitle("Error");
alert.setMessage("Sorry, your device doesn't support flash light!");
alert.setButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
alert.show();
}
if (isFlashOn) {
turnOffFlash();
btnflash.setText("ON");
} else {
turnOnFlash();
btnflash.setText("OFF");
}
}
});
}
private void getCamera() {
if (camera == null) {
try {
camera = Camera.open();
params = camera.getParameters();
} catch (Exception e) {
}
}
}
private void turnOnFlash() {
if (!isFlashOn) {
if (camera == null || params == null) {
return;
}
params = camera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();
isFlashOn = true;
}
}
private void turnOffFlash() {
if (isFlashOn) {
if (camera == null || params == null) {
return;
}
params = camera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
camera.stopPreview();
isFlashOn = false;
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
turnOffFlash();
}
@Override
protected void onDestroy () {
super.onDestroy();
finish();
}
}
با کمک stack حل شدبا استفاده از متد زیر:
public void exit() {
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
System.exit(0);
}
این متد رو توی ()onDestroy باید فراخوانی کنیم. به این شکل:
@Override
protected void onDestroy () {
exit();
super.onDestroy();
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .