android 종료 여러 activity 응용 프로그램
이 글은 자신을 위해 정리하는 방법과 인터넷에서 찾은 방법이 결합되어 있다...끄는 방법이 있을 거라고 믿어요...
1..모든 Activity를 중지하는 방법
ActivityManageractivityMgr = (ActivityManager) OneActivity.this.getSystemService(ACTIVITY_SERVICE);
activityMgr.restartPackage(getPackageName());
2.android.os.Process.killProcess(android.os.Process.myPid()//PID 가져오기
3. 작업 관리자 방법
먼저 Android 1.5 APILEvel 이 3 이상이어야 하며 권한이 필요합니다.
ActivityManager am= (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
am.restartPackage(getPackageName());
시스템은 이 가방 아래의 모든 프로세스, 서비스, 모든 것을 죽이면 깨끗하게 죽일 수 있으니 주의해야 한다.
방법 1,list로 activity 실례를 저장하고 코드를 하나씩 제거한다.
import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Application;
import android.content.DialogInterface;
import android.content.Intent;
public class SysApplication extends Application {
private List<Activity> mList = new LinkedList<Activity>();
private static SysApplication instance;
private SysApplication() {
}
public synchronized static SysApplication getInstance() {
if (null == instance) {
instance = new SysApplication();
}
return instance;
}
// add Activity
public void addActivity(Activity activity) {
mList.add(activity);
}
public void exit() {
try {
for (Activity activity : mList) {
if (activity != null)
activity.finish();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
System.exit(0);
}
}
@Override
public void onLowMemory() {
super.onLowMemory();
System.gc();
}
}
각 Activity의 onCreate 메서드에 유사한 코드를 추가합니다.
[java] public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SysApplication.getInstance().addActivity(this);
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SysApplication.getInstance().addActivity(this);
}
프로그램을 종료해야 할 때 호출:
SysApplication.getInstance().exit();
SysApplication.getInstance().exit();
간단히 말해서, 단일 모드를 통해 모든Activity의 인용을 전역 체인 테이블에 추가하고, 프로그램을 종료할 때마다 System을 호출합니다.exit(0) 시 체인 테이블에서Activity의finish 방법을 호출합니다
참고: 이 메서드는 링크도 참조할 수 있습니다.http://maosidiaoxian.iteye.com/blog/1404725
방법 2. 방송 사용
2.2 전체 응용 프로그램을 종료하는 것은 곤란하다. 한때는 Activity Manager 관리자 = (Activity Manager) context를 시도했다.getSystemService(Context.ACTIVITY_SERVICE); manager.killBackgroundProcesses(package);안돼android.os.Process.killProcess(android.os.Process.myPid());안 돼요, 관리자.restartPackage(package);아니면 Intent My Intent = new Intent(Int.ACTION MAIN); MyIntent.addCategory(Intent.CATEGORY_HOME); startActivity(MyIntent); finish();이것은 데스크톱으로 되돌아갈 뿐입니다. 만약에 여러 개의Activity를 켜서 다시 켜도 문제가 있을 수 있습니다. 아니면 안 될 수도 있습니다. 유설 방송 메커니즘을 보면 좋은 문제입니다. 이 문제를 철저히 해결할 수 있습니다. 쓸데없는 말은 하지 말고 코드를 보십시오.
public abstract class EnterActivity extends BaseActivity {
...
// , , activity
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
unregisterReceiver(this); // , ,
((Activity) context).finish();
}
};
@Override
public void onResume() {
super.onResume();
// activity
IntentFilter filter = new IntentFilter();
filter.addAction(Attribute.PAGENAME);
registerReceiver(this.broadcastReceiver, filter); //
}
/**
*
*/
public void close() {
Intent intent = new Intent();
intent.setAction(Attribute.PAGENAME); //
sendBroadcast(intent);//
finish();
}
...
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.