package com.streamlet.base;
import android.app.Activity;
import android.content.Intent;
import com.streamlet.R;
import com.streamlet.appui.activity.common.LoginActivity;
import com.streamlet.common.util.SharedPreferenceUtil;
import java.util.LinkedList;
/**
* 这是一个单例模式的 activity管理器,没创建一个activity就加入到这个栈内,finish就将 它移除,
* 当应用退出时,遍历栈内activity,并且finish退出
*
* @author wj
*
*/
public class AppActivityManager {
private static AppActivityManager instance = null;
private LinkedList<Activity> acts;
private AppActivityManager() {
acts = new LinkedList<Activity>();
};
public static AppActivityManager getInstance() {
if (instance == null) {
instance = new AppActivityManager();
}
return instance;
}
public void goTo(Activity self, Class<? extends Activity> cls) {
Intent it = new Intent(self, cls);
self.startActivity(it);
}
public void goTo(Activity self, Intent it) {
self.startActivity(it);
}
public void goFoResult(Activity self, Class<? extends Activity> cls, int RequestCode) {
Intent it = new Intent(self, cls);
goFoResult(self, it, RequestCode);
}
public void goFoResult(Activity self, Intent it, int RequestCode) {
self.startActivityForResult(it, RequestCode);
}
public void goFoResultBottom(Activity self, Class<? extends Activity> cls, int RequestCode) {
Intent it = new Intent(self, cls);
goFoResultBottom(self, it, RequestCode);
}
public void goFoResultBottom(Activity self, Intent it, int RequestCode) {
self.startActivityForResult(it, RequestCode);
self.overridePendingTransition(R.anim.dock_bottom_enter, R.anim.dock_bottom_exit);
}
public void addActivity(Activity act) {
acts.add(act);
}
public void removeActivity(Activity act) {
if (acts != null && acts.indexOf(act) >= 0) {
acts.remove(act);
}
}
public void cleanActivity() {
while (acts.size() != 0) {
Activity act = acts.poll();
act.finish();
}
}
public Activity getTopActivity() {
return (acts == null || acts.size() <= 0) ? null : acts.get(acts.size() - 1);
}
/**t跳转到需要登录状态的页面*/
public void goToActivityOfLogin(Activity self, Class<? extends Activity> cls){
if(SharedPreferenceUtil.isLogin(self)){
Intent it = new Intent(self, cls);
self.startActivity(it);
}else{
Intent it = new Intent(self, LoginActivity.class);
self.startActivity(it);
}
}
public void quit(Activity context) {
/*NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
nm.cancelAll();
// 清除临时文件
File temppraryFile = new File(Constant.TEMPORARY_FILE_PATH);
if (temppraryFile.exists()){
UIHelper.deleteAllFiles(temppraryFile);
}
cleanActivity();
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
// 2.2版本以下的直接使用restartPackage
if (Build.VERSION.SDK_INT < 8) {
am.restartPackage(context.getPackageName());
} else {
try {
Method killBackgroundProcesses = am.getClass().getDeclaredMethod("killBackgroundProcesses", String.class);
killBackgroundProcesses.setAccessible(true);
killBackgroundProcesses.invoke(am, context.getPackageName());
} catch (Exception e) {
LogUtil.log(e);
}
}
System.exit(0);
*/
}
}