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 allActivity=new ArrayList();//保存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 中的 。






你可能感兴趣的:(Android学习)