安卓心跳

private boolean runHeartFlag = true;
    private boolean currentMain = true;

    private String first = "FIRST";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initFrame();
        UmengUpdateAgent.update(this);

        setHeartBeat();
    }

    private ExecutorService mExecutorService;
    private Handler mHeartHandler = new Handler(new Handler.Callback() {

        @Override
        public boolean handleMessage(Message msg) {
            // 无权限,则弹出对话框,退出
            exitDialog();
            return true;
        }
    });

    /**
     * 设置心跳服务
     */
    private void setHeartBeat() {
        mExecutorService = Executors.newFixedThreadPool(4);
        imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).getDeviceId();
        mUserName = PreferencesUtils.getInstance(this).getString("userName");
        mUserService = new UserService();

        mExecutorService.execute(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                while (runHeartFlag) {
                    if (currentMain) {
                        if (HttpTool.isNetworkConnected(mActivity)) {
                            String result = mUserService.loginStatus(mUserName, imei, first);
                            first = "NOT_FIRST";
                            if (!TextUtils.isEmpty(result) && TextUtils.equals(result, "FAIL")) {
                                // 解析,判断状态,如果是无权限,则弹出对话框,退出
                                runHeartFlag = false;
                                mHeartHandler.sendEmptyMessage(0);
                            }
                        }
                        try {
                            Thread.sleep(10000);
                        } catch (Exception e) {
                            // TODO: handle exception
                            e.printStackTrace();
                        }
                    } 
                }
            }
        });
    }

    /**
     * 弹出对话框,告诉用户当前登录已失效
     * @param packetPath
     */
    private void exitDialog() {
        final AlertDialog dialog = new AlertDialog.Builder(this).create();
        dialog.show();
        dialog.setContentView(R.layout.dialog_relogin);
        dialog.setCancelable(false);

        Button btn_got_it = (Button) dialog.findViewById(R.id.btn_got_it);
        btn_got_it.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                dialog.cancel();
                // TODO Auto-generated method stub
                mActivity.finish();
                Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName());
                i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(i);
            }
        });
    }


    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        currentMain = true;
        if (mPacketFragment != null) {
            mPacketFragment.onActivityResume();
        }
    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        currentMain = false;
        if (mPacketFragment != null) {
            mPacketFragment.onActivityPause();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        runHeartFlag = false;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ithouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值