使用shell命令模仿用户点击 但是循环执行1000次之后就会失效

因项目需要 使用shell命令模仿用户的点击操作 代码如下
public void resetVPN() {

    Intent intent ;
    PackageManager packageManager = this.getPackageManager();
    intent = packageManager.getLaunchIntentForPackage("com.did.vpnroot");
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP) ;
    isActive=false;
    this.startActivity(intent);
    mHandler.postDelayed(new Runnable() {

        @Override
        public void run() {
            Log.i(LogTag.JS_ERROR, getCurrentActivityName());
            CmdHelper.exec(CmdHelper.getTap(0x20d, 0x2c3));

        }
    }, 3000);
    mHandler.postDelayed(new Runnable() {

        @Override
        public void run() {
            Log.i(LogTag.JS_ERROR, getCurrentActivityName());
            CmdHelper.exec(CmdHelper.getTap(0xbe, 0x2ca));

        }
    }, 6000);
    mHandler.postDelayed(new Runnable() {

        @Override
        public void run() {
            String[] comands = new String[] { "cmd.exe", "/C", "am force-stop com.did.vpnroot" };
            CmdHelper.exec(comands);

// Intent intent=new Intent(getApplicationContext(),MainActivity.class);
// startActivity(intent);
moveTaskToFront();
}
}, 17000);

// mHandler.postDelayed(new Runnable() {
//
// @Override
// public void run() {
// CmdHelper.sendKeyEvent(KeyEvent.KEYCODE_BACK);
//
// }
// }, 15000);
// mHandler.postDelayed(new Runnable() {
//
// @Override
// public void run() {
// CmdHelper.sendKeyEvent(KeyEvent.KEYCODE_BACK);
//
// }
// }, 17000);
// mHandler.postDelayed(new Runnable() {
//
// @Override
// public void run() {
// CmdHelper.sendKeyEvent(KeyEvent.KEYCODE_BACK);
//
// }
// }, 20000);
// mHandler.postDelayed(new Runnable() {
//
// @Override
// public void run() {
// CmdHelper.sendKeyEvent(KeyEvent.KEYCODE_BACK);
//
// }
// }, 22000);
// mHandler.postDelayed(new Runnable() {
//
// @Override
// public void run() {
// CmdHelper.sendKeyEvent(KeyEvent.KEYCODE_BACK);
//
// }
// }, 24000);
mHandler.postDelayed(new Runnable() {

        @Override
        public void run() {
            Message message = new Message();
            message.what = 5;
            mHandler.sendMessage(message);

        }
    }, 18000);

// ExecutorService singleRest=Executors.newSingleThreadExecutor();
// singleRest.execute(new Runnable() {
//
// @Override
// public void run() {
// try {
// Thread.sleep(3000);
// Log.i(LogTag.JS_ERROR, getCurrentActivityName());
// CmdHelper.exec(CmdHelper.getTap(0x1f4, 0x2d0));
// Thread.sleep(4000);
// Log.i(LogTag.JS_ERROR, getCurrentActivityName());
// CmdHelper.exec(CmdHelper.getTap(0x163, 0x2d0));
// Thread.sleep(8000);
// CmdHelper.sendKeyEvent(KeyEvent.KEYCODE_BACK);
// Thread.sleep(2000);
// CmdHelper.sendKeyEvent(KeyEvent.KEYCODE_BACK);
// Thread.sleep(5000);
// CmdHelper.sendKeyEvent(KeyEvent.KEYCODE_BACK);
// Thread.sleep(2000);
// CmdHelper.sendKeyEvent(KeyEvent.KEYCODE_BACK);
// Thread.sleep(2000);
// // ����
// Message message = new Message();
// message.what = 5;
// mHandler.sendMessage(message);
// } catch (Exception e) {
// e.printStackTrace();
// }
//
//
// }
// });

}
碰到的问题是执行了1000次之后就会莫名其妙的失效 而且后台脚本还在执行 情况类似整个屏幕只有显示功能了一样

ent intent ;
PackageManager packageManager = this.getPackageManager();
intent = packageManager.getLaunchIntentForPackage("com.did.vpnroot");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP) ;
isActive=false;
this.startActivity(intent);
mHandler.postDelayed(new Runnable() {

    @Override
    public void run() {
        Log.i(LogTag.JS_ERROR, getCurrentActivityName());
        CmdHelper.exec(CmdHelper.getTap(0x20d, 0x2c3));

    }
}, 3000);
mHandler.postDelayed(new Runnable() {

    @Override
    public void run() {
        Log.i(LogTag.JS_ERROR, getCurrentActivit