import java.util.Timer;  import java.util.TimerTask;  import android.app.Activity;  import android.app.AlertDialog;  import android.app.Dialog;  import android.content.Intent;  import android.os.Bundle;  import android.os.Handler;  import android.os.Looper;  import android.os.Message;  import android.view.View;  import android.view.View.OnClickListener;  import android.widget.Button;  /**  * @author Tony Shen  *  */  public class Main extends Activity {private Button button;  private Timer timer;  private final int TIMER_EXECUTE = 1;  private final int ERROR_MESSAGE = 1;  private final int CHECK_TIME = 5000;  private EThread eThread;  /** Called when the activity is first created. */  @Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  button = (Button) findViewById(R.id.btn);  button.setOnClickListener(new OnClickListener() {  public void onClick(View v) {  //timer for check the thread  timer = new Timer();  timer.schedule(new TimerTask(){  @Override  public void run() {  checkThread();  }  },CHECK_TIME);  eThread = new EThread();  eThread.start();  }  });  }  @Override  protected Dialog onCreateDialog(int id) {  return new AlertDialog.Builder(this).setTitle("错误")  .setMessage("线程超时!").create();  }  private Handler mHandler = new Handler() {  public void handleMessage(Message msg) {  switch(msg.what){  case TIMER_EXECUTE:  if (eThread.getState().toString().equals("TERMINATED")||  eThread.getState().toString().equals("TIMED_WAITING")) {  eThread.stopThread(true);  showDialog(ERROR_MESSAGE);  timer.cancel();// 关闭计时器  }  break;  }  super.handleMessage(msg);  }  };  protected void checkThread() {  Message msg = new Message();  msg.what = TIMER_EXECUTE;  mHandler.sendMessage(msg);  }  class EThread extends Thread {  private boolean flag = true;  public void stopThread(boolean flag) {this.flag = !flag;  }  @Override  public void run() {  Looper.prepare();  try {  Thread.sleep(6000);  } catch (InterruptedException e) {  e.printStackTrace();  }  timer.cancel();// 关闭计时器  if(!flag) {  return;  }  Intent i = new Intent(Main.this,SecondActivity.class);  startActivity(i);  }  }  }

更多相关文章

  1. Android(Java):滑动删除实现——重写onTouch
  2. Android(安卓)打开闪光灯(手电筒)
  3. Android动态关闭mainfest中的receiver
  4. Android(安卓)自动化测试工具Robotium 之Solo类的详细说明
  5. Android(安卓)P 限制级API调用弹窗关闭
  6. 【Android】定义HttpPost连接超时
  7. Android(安卓)开启或关闭WIFI实现
  8. Android(安卓)Studio无法在线更新
  9. Android(安卓)WebView加载H5音视频自动播放、关闭Activity停止播

随机推荐

  1. 实例演示,v-if,v-for,v-model,v-bind,v-o
  2. ActionScript 3.0 记要(1): 基本语法
  3. 窗体设计时的趣事
  4. DebugHook 与 ReportMemoryLeaksOnShutdo
  5. 检索用到汇编代码的单元
  6. ExtCtrls.Frame3D
  7. 系统默认语言与系统支持的语言列表
  8. 坚果云企业网盘安全性怎么样?
  9. 使用 IXMLHTTPRequest 简单获取网页源代
  10. 语法基础: 使用不同的数据类型标记数组