Android 앱을 프로그래밍 방식으로 종료하려면 어떻게 해야 합니까?
이 질문은 몇 번 읽었기 때문에 몇 번인가 질문을 받았을 것입니다.제 고객은 사용자가 클릭해서 종료할 수 있는 버튼을 앱에 넣기를 원합니다.이 글을 읽고 전화를 걸었습니다.finish()
아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 네.그러나 마침은 현재 진행 중인 활동을 종료하는 것 뿐이죠?저는 활동이 많기 때문에 이 경우 모든 활동의 인스턴스를 통과하여 완료하거나 모든 활동을 싱글톤 패턴으로 만들어야 합니다.
i i i도 i i i i 。Activity.moveTaskToBack(true)
홈 화면으로 이동할 수 있습니다.이것은 프로세스를 종료하는 것이 아니라 백그라운드입니다.래서서 이과 ?? ???
앱을 완전히 닫으려면 어떤 방법을 사용해야 합니까?위에서 설명한 방법 또는 위의 다른 방법/기타 사용방법 중 어느 것이 있습니까?
API 16에서 릴리스된 finishAffinity 메서드는 진행 중인 모든 작업을 닫고 앱을 닫습니다.
this.finishAffinity();
이 액티비티와 그 바로 아래의 모든 액티비티를 현재 태스크에서 동일한 선호도를 가진 액티비티를 완료합니다.이것은 일반적으로 응용 프로그램을 다른 작업(예를 들어 인식되는 콘텐츠유형의 ACTION_VIEW에서)으로 기동할 수 있고 사용자가 업 네비게이션으로 현재 작업을 종료하고 자신의 작업으로 전환했을 때 사용됩니다.이 경우 사용자가 두 번째 응용 프로그램의 다른 액티비티로 이동한 경우 작업 전환의 일부로 이러한 액티비티를 모두 원래 작업에서 제거해야 합니다.
이 종료에서는 이전 액티비티로 결과를 전달할 수 없습니다.이렇게 할 경우 예외가 발생합니다.
API 21 이후 다음 기능을 사용할 수 있습니다.
finishAndRemoveTask();
이 작업의 모든 작업을 완료하고 최근 작업 목록에서 제거합니다.
다른 방법:
getActivity().finish();
System.exit(0);
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
Process.sendSignal(Process.myPid(), Process.SIGNAL_KILL);
Intent i = new Intent(context, LoginActivity.class);
i.putExtra(EXTRA_EXIT, true);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(i);
출처: Android 어플리케이션을 프로그래밍 방식으로 종료하는 방법
을 빌어요행운을 빕니다.
실제로 모든 사용자가 클릭 이벤트를 통해 애플리케이션을 종료하고 싶어 합니다.어디서든 액티비티가 있을 수 있습니다.
온클릭 이벤트에 다음 코드 추가:
Intent homeIntent = new Intent(Intent.ACTION_MAIN);
homeIntent.addCategory( Intent.CATEGORY_HOME );
homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(homeIntent);
모든 액티비티를 종료하려면 System.exit();를 호출할 수 있습니다.
submit=(Button)findViewById(R.id.submit);
submit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
}
});
응용 프로그램을 종료하려면 버튼을 누른 이벤트 내에서 다음 코드를 사용하십시오.
public void onBackPressed() {
moveTaskToBack(true);
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
}
@Override
public void onBackPressed() {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setTitle("Exit Application?");
alertDialogBuilder
.setMessage("Click yes to exit!")
.setCancelable(false)
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
moveTaskToBack(true);
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
사용하다System.exit(0);
따라서 다음 두 가지 상황이 발생할 수 있습니다.
- 액티비티를 종료할 수 있습니다.
- 또는 응용 프로그램을 종료합니다.
다음 코드를 사용하여 활동을 종료할 수 있습니다.
var intent = new Intent(Intent.ActionMain);
intent.AddCategory(Intent.CategoryHome);
intent.SetFlags(ActivityFlags.NewTask);
startActivity(intent);
finish();
단, 같은 어플리케이션의 기본 액티비티가 종료되는 것은 아닙니다.이렇게 하면 응용 프로그램이 최소화됩니다.
응용 프로그램을 종료하려면 다음 코드를 사용하여 프로세스를 종료합니다.
android.os.Process.killProcess(android.os.Process.myPid());
모노 발달을 위해
process.KillProcess(Process.MyPid());
어때.this.finishAffinity()
의사로부터
이 액티비티와 그 바로 아래의 모든 액티비티를 현재 태스크에서 동일한 선호도를 가진 액티비티를 완료합니다.이것은 일반적으로 응용 프로그램을 다른 작업(예를 들어 인식되는 콘텐츠유형의 ACTION_VIEW에서)으로 기동할 수 있고 사용자가 업 네비게이션으로 현재 작업을 종료하고 자신의 작업으로 전환했을 때 사용됩니다.이 경우 사용자가 두 번째 응용 프로그램의 다른 액티비티로 이동한 경우 작업 전환의 일부로 이러한 액티비티를 모두 원래 작업에서 제거해야 합니다.이 종료에서는 이전 액티비티로 결과를 전달할 수 없습니다.이렇게 할 경우 예외가 발생합니다.
android.os.Process.killProcess(android.os.Process.myPid());
작업(작업 스택)을 지우고 새 작업을 시작합니다.
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
System.exit(1);
Intent homeIntent = new Intent(Intent.ACTION_MAIN);
homeIntent.addCategory( Intent.CATEGORY_HOME );
homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(homeIntent);
System.exit(1);
이 코드를 사용하면 매우 유용하며 모든 활동을 종료할 수 있습니다.
@Override
public void onBackPressed() {
Intent homeIntent = new Intent(Intent.ACTION_MAIN);
homeIntent.addCategory( Intent.CATEGORY_HOME );
homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(homeIntent);
}
자마린에서 달성.안드로이드:
public override void OnBackPressed()
{
MoveTaskToBack(true);
Process.KillProcess(Process.MyPid());
Environment.Exit(1);
}
이것을 onClic에 넣습니다.
moveTaskToBack(true);
finish()
통화할 때 사용해 보세요.버튼 클릭으로 사용하는 경우가 있습니다.
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
앱을 닫는 대신 대시보드가 열려 앱이 닫힌 것처럼 보입니다.
Android에 대한 자세한 설명을 보려면 이 질문을 읽으십시오. - 응용 프로그램 코드를 종료하십시오.
이걸 쓰세요.finishAffinity(); finish() 대신 이 버튼에서 finishAffinity(); 이 버튼이 작동하지 않으면 매니페스트에 Android:noHistory="true"를 추가하고 uisng finish(); 또는 finishAffinity(); 로 액티비티를 완료할 수도 있습니다.
도움이 됐으면 좋겠는데...:)
이 두 가지 기능을 호출합니다.
finish();
moveTaskToBack(true);
이 메서드를 종료/종료 버튼에 연결
public void quitGame(View view) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
finishAndRemoveTask();
} else {
finish();
}
}
singletop 및 finish() onCreate를 사용하여 호출된 ghost 액티비티가 유효합니다.
사용만 가능합니다.moveTaskToBack(true);
System.exit(1) 대신 System.exit(0)을 사용합니다.
finish();
finishAffinity();
System.exit(0);
나를 위해 일했다
아직도 궁금해 하는 사람이 있다면, 자마린을 위해서.Android(내 경우 Monogame도 실행 중) 명령어FinishAndRemoveTask()
Activity
아, 아, 아, 맞다!
단편적으로
getActivity().finishAndremoveTask();
액티비티에서
finish And Remove Task();
백프레스의 코드를 사용하세요.
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
어플리케이션에서 EventBus(또는 실제로 다른 pub/sub 라이브러리)를 사용하여 액티비티 간에 통신하는 경우 명시적 이벤트를 전송할 수 있습니다.
final public class KillItWithFireEvent
{
public KillItWithFireEvent() {}
public static void send()
{
EventBus.getDefault().post(new KillItWithFireEvent());
}
}
은 이 모든 을 해야 의 활동을 할 수 있다는 입니다.finish()
이를 위해 상속을 통해 쉽게 shim 액티비티 클래스를 만들 수 있습니다.이러한 클래스는 이 이벤트를 듣고 서브클래스가 다른 모든 것을 구현하도록 합니다.그러면 모든 액티비티가 이 추가 레이어에서 상속되도록 합니다.킬 청취자는 특정 상황에서 죽음을 피하는 것과 같은 오버라이드를 통해 추가 기능을 추가할 수도 있습니다.
응용 프로그램을 종료하려면 아래 두 줄을 실행하십시오.
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
그냥 이렇게 부르세요:
finishAffinity();
이거 될 수 있어 나도 해봤어.
this.finishAffinity();
종료와 종료를 모두 사용하면 앱이 정상적으로 종료됩니다.
finish();
System.exit(0);
언급URL : https://stackoverflow.com/questions/17719634/how-to-exit-an-android-app-programmatically
'programing' 카테고리의 다른 글
16진수 색상 값(#fffff )을 정수 값으로 변환합니다. (0) | 2022.10.13 |
---|---|
Firebug 또는 유사한 도구를 사용하여 JavaScript/jQuery 이벤트 바인딩을 디버깅하는 방법 (0) | 2022.10.13 |
Amazon EC2 - Maria에 원격으로 연결할 수 없음DB (0) | 2022.10.13 |
maria db 및 s3에 대한 클라우드 주조 공장 내 자동 백업 (0) | 2022.10.13 |
JavaScript에서 현재 연도 가져오기 (0) | 2022.10.13 |