示例程序2
(自己的Application中)
private final static HandlerThread business0HandlerThread = new HandlerThread ( "Business0Handler" );private static Handler business0Handler ;public static Handler getBusiness0Handler () {if ( business0Handler == null ) {synchronized ( business0HandlerThread ){if ( business0Handler == null ) {business0HandlerThread . start ();business0Handler = new Handler ( business0HandlerThread . getLooper ());}}}return business0Handler ;}/** 在这里判断是否还有工作在进行*/public boolean isAnyWorkGoing () {return false ;}ActivityManager am ;public boolean shouldKill () {if ( isAnyWorkGoing ()) {return true ;} else {if ( am == null ) {for ( int i = 0 ; i < 5 ; i ++) {am = ( ActivityManager ) getSystemService ( Context . ACTIVITY_SERVICE );if ( am != null )break ;try {Thread . sleep ( 50 );} catch ( InterruptedException e ) {e . printStackTrace ();}}}List < RunningTaskInfo > runningTasks = am . getRunningTasks ( 100 );for ( RunningTaskInfo task : runningTasks ) {ComponentName baseActivity = task . baseActivity ;if ( baseActivity != null&& task . baseActivity . getClassName (). startsWith ("cn.edu.edut.robin" )) {if ( task . numRunning > 0 ) {Log . d ( TAG , task . baseActivity . getClassName ()+ task . numRunning );flgKillLoop = false ;return true ;}}}}return false ;}boolean flgKillLoop = false ;public void signKill () {flgKillLoop = true ;getBusiness0Handler (). post ( killRunable );}Runnable killRunable = new Runnable () {@Overridepublic void run () {if ( shouldKill ()) {android . os . Process . killProcess ( android . os . Process . myPid ());} else if ( flgKillLoop ) {getBusiness0Handler (). postDelayed ( killRunable , 60 * 1000 );}}};
结束