private Handler handler; private int MSG_HANDLER = 0;
private MyThread myThread; private int time = 0;
myThread = new MyThread(); myThread.start(); handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == MSG_HANDLER) { text.setText("已经3分钟"); } } };
private class MyThread extends Thread { @Override public void run() { super.run(); while (!isAppRunning) { check(); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } }
}
private void check() { ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningTaskInfo> list = am.getRunningTasks(100); String topname = list.get(0).topActivity.getPackageName(); Log.e("MainActivity","topname:"+topname); if (topname.equals(MY_PKG_NAME)) { time++; Log.e("MainActivity", "time:" + time); } if (time == 180) { isAppRunning = true; handler.sendEmptyMessage(MSG_HANDLER); } Log.e("MainActivity", "isAppRunning:" + isAppRunning); }