package com.example.qingyangdemo;
import java.util.Timer;
import java.util.TimerTask;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.qingyangdemo.R;
import com.example.qingyangdemo.base.AppException;
import com.example.qingyangdemo.base.AppManager;
import com.example.qingyangdemo.base.BaseActivity;
import com.example.qingyangdemo.common.UIHelper;
import com.example.qingyangdemo.net.SocketClient;
/**
* 控制pc端关机
*
* @author 赵庆洋
*
*/
public class PowerOffActivity extends BaseActivity {
private ImageButton returnBtn;
private TextView powerText;
private ImageView powerImage;
// 是否关机
private boolean isPowerOff = true;
// 倒计时的秒数
private int recLen = 6;
private Timer timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.pc_power_off_activity);
initView();
}
/**
* 初始化视图
*/
private void initView() {
powerText = (TextView) findViewById(R.id.power_text);
powerImage = (ImageView) findViewById(R.id.power_image);
returnBtn = (ImageButton) findViewById(R.id.power_return_btn);
returnBtn.setOnClickListener(UIHelper.finish(this));
powerImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (isPowerOff) {
powerImage.setImageResource(R.drawable.pc_power_off_canel);
isPowerOff = false;
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() { // UI thread
@Override
public void run() {
recLen--;
powerText.setText(recLen
+ "秒后将关闭电脑! 取消请再次点击按钮!");
if (recLen == 0) {
timer.cancel();
timer = null;
powerOffPc();
}
}
});
}
}, 0, 1000);
} else {
powerImage.setImageResource(R.drawable.pc_power_off);
isPowerOff = true;
powerText.setText("");
timer.cancel();
timer = null;
recLen = 6;
}
}
});
}
/**
* 关闭计算机
*/
public void powerOffPc() {
putAsyncTask(new AsyncTask<Void, Void, Boolean>() {
@Override
protected Boolean doInBackground(Void... params) {
Boolean isClose = false;
try {
isClose = SocketClient.PowerOffPc(application);
} catch (AppException e) {
return false;
}
return isClose;
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
if (result) {
AppManager.getAppManager().AppExit(PowerOffActivity.this);
}
}
});
}
@Override
protected void onDestroy() {
AppManager.getAppManager().finishActivity(this);
super.onDestroy();
}
}