android学習-androidがappを終了する機能を簡単に実現し、restartPackageではない


2.1ではrestartPackageというメソッドを使用できますが、2.2ではサポートされていません.sdk levはappを終了したが再起動できないと判断した.2.1シミュレータ2.2でテストしたhtcマシン
					int currentVersion = android.os.Build.VERSION.SDK_INT;
					if (currentVersion > android.os.Build.VERSION_CODES.ECLAIR_MR1) {
						//   MainActivity     app 
						Thinksns.exitApp();
						
						/*
						 * Intent startMain = new Intent();
						 * startMain.setClass(ThinksnsSiteList.this,
						 * ThinksnsActivity.class);
						 * startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
						 * startActivity(startMain); 
						 * System.exit(0);
						 */					
						
					} else {
						// android2.1    restartPackage    app
						ActivityManager activityManager = (ActivityManager) 
								getSystemService(Context.ACTIVITY_SERVICE);
						activityManager.restartPackage("com.thinksns.android");
						IActivity.exitApp();
					}
				

アプリケーションを終了し、再ログイン、クラスログアウト、アカウントの切り替え、サイトなどを実現
public static ArrayList<Activity> allActivity=new ArrayList<Activity>();//  Activity
	public static int lastActivityId;
	
	//  name  Activity  
	public static Activity getActivityByName(String name){   Activity getac=null;
		for(Activity ac:allActivity)
		{
			if(ac.getClass().getName().indexOf(name)>=0)
			{
				getac=ac;
			}
		}
		return getac;
	}
	//  
	public static void exitApp(){
		((MainActivitye)Thinksns.getActivityByName("MainActivitye")).exitApp();
			
	}

この方法はIActivityでそのクラスを実現するために使用できることを書くことができる.
	public void exitApp() {
		// TODO Auto-generated method stub
		this.finish();
	}

他のActivityを作成するときは、addをallActivitylistに格納します.