안드로이드 모든 액티비티 종료
구글링 해보니 모든 액티비티를 종료하는 방법에 여러가지가 있었다.
이것 저것 해보니 귀차니즘 발동...
먼저 ActivityManager 클래스를 작성한다.
이 클래스에서 모든 액티비티를 ArrayList에 담아서 가지고 있도록 한다.
ActivityManager클래스는 singleton으로 구현.
package com.example.activitytest.manager;
import java.util.ArrayList;
import android.app.Activity;
public class ActivityManager {
private static ActivityManager activityMananger = null;
private ArrayList<activity> activityList = null;
private ActivityManager() {
activityList = new ArrayList<activity>();
}
public static ActivityManager getInstance() {
if( ActivityManager.activityMananger == null ) {
activityMananger = new ActivityManager();
}
return activityMananger;
}
/**
* 액티비티 리스트 getter.
* @return activityList
*/
public ArrayList<activity> getActivityList() {
return activityList;
}
/**
* 액티비티 리스트에 추가.
* @param activity
*/
public void addActivity(Activity activity) {
activityList.add(activity);
}
/**
* 액티비티 리스트에서 삭제.
* @param activity
* @return boolean
*/
public boolean removeActivity(Activity activity) {
return activityList.remove(activity);
}
/**
* 모든 액티비티 종료.
*/
public void finishAllActivity() {
for (Activity activity : activityList) {
activity.finish();
}
}
}
다음으로 Activity를 상속받은 ParentActivity 클래스를 하나 작성하고 ParentActivity 상속 받아서
새로운 Activity를 작성한다.
ParentActivity 클래스에서는 onCreate()메소드가 호출(새로운 Activity가 생성)될 때 마다 생성된 Activity를
ActivityManager 클래스를 통해 ArrayList<Activity>에 add시킨다.
package com.example.activitytest.manager;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
public class ParentActivity extends Activity {
private ActivityManager am = ActivityManager.getInstance();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
am.addActivity(this);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
am.removeActivity(this);
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
// 뒤로가기 버튼 클릭시
Toast.makeText(getBaseContext(), "모든 액티비티 종료.", Toast.LENGTH_SHORT).show();
am.finishAllActivity();
}
}
그림으로 정리하면.
결론은 ParentActivity 클래스를 상속받아서 Activity를 구현해서 개발하면 된다.
모든 액티비티를 종료하려면 ActivityManager 클래스의 finishAllActivity() 메소드를 호출해서 종료시키면 된다.
ActivityManager클래스와 ParentActivity클래스에 필요한 메소드 잘 구현해서 써먹도록 하자.
// 프로젝트 파일 첨부.
'android' 카테고리의 다른 글
Android Thread example. (0) | 2017.03.08 |
---|---|
Android SSL HTTPS 안드로이드 SSL HTTPS 통신 적용 (1) | 2013.02.14 |
안드로이드 URL 이미지 캐싱 (0) | 2013.01.11 |
안드로이드 Bitmap 비교 방법 (0) | 2013.01.11 |
ActionBarSherlock 안드로이드 액션바 라이브러리 (0) | 2012.12.21 |