package com.todayinfo.ui.activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.view.Window;
import android.widget.Toast;
import com.todayinfo.ui.api.PwdErrorListener;
import com.todayinfo.ui.api.RetryNetwork;
import com.todayinfo.ui.api.Task;
import com.todayinfo.utils.ThreadPoolManager;
public abstract class SuperFragmentActivity extends FragmentActivity implements RetryNetwork, PwdErrorListener{
private static final String TAG = "BaseActivity";
protected boolean isAvtive = false;
protected Context mContext;
ThreadPoolManager mThreadPoolManager;
/**
* 当前最后执行的线程任务,task的ID属性可以用于判断线程启动的先后
*/
protected Task lastTask = new Task(0) {
@Override
public void run() {
}
};
/**
* 碎片管理器
*/
protected FragmentManager fmm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
requestWindowFeature(Window.FEATURE_NO_TITLE);
isAvtive = true;
fmm = getSupportFragmentManager();
mThreadPoolManager = ThreadPoolManager.getInstance();
}
@Override
public void pwdError() {
runOnUiThread(new Runnable() {
@Override
public void run() {
//TODO 弹出密码错误dialog
}
});
}
public ProgressDialog getProgressDialog(String msg) {
ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setMessage(msg);
progressDialog.setCancelable(true);
return progressDialog;
}
protected void showToast(final String msg){
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(SuperFragmentActivity.this, msg, 1).show();
}
});
}
@Override
protected void onPause() {
super.onPause();
isAvtive = false;
}
@Override
protected void onResume() {
super.onResume();
isAvtive = true;
}
@Override
protected void onDestroy() {
super.onDestroy();
isAvtive = false;
}
public boolean getAvtive(){
return isAvtive;
}
protected void hintNoNetWork(){
//TODO 弹出网络错误提示框
}
protected float getDimen(int id){
float dimension = getResources().getDimension(id);
return dimension;
}
/**
* 子线程执行一个任务
*
* @param task
*/
protected void executeTask(Task task) {
this.lastTask = task;
mThreadPoolManager.executeTask(task);
}
protected void executeTask(Runnable run){
mThreadPoolManager.executeTask(run);
}
}