package com.ksy.Cache.demo;

import android.app.ActivityManager;
import android.content.Context;
import android.os.Debug;
import android.os.Handler;

import com.ksy.statlibrary.util.Cpu;


/**
 * Created by QianYi-Xin on 2015/6/1.
 */
public class QosThread extends Thread {

    private Context mContext;
    private Handler mHandler;
    private Cpu mCpuStats;
    private ActivityManager mActivityManager;
    private Debug.MemoryInfo mi;
    private QosObject mQosObject;

    private boolean mRunning;

    public QosThread(ActivityManager manager, Handler handler,Context context) {
        mContext = context;
        mHandler = handler;
        mCpuStats = new Cpu(mContext.getPackageName());
        mActivityManager = manager;
        mi = new Debug.MemoryInfo();
        mRunning = true;
        mQosObject = new QosObject();
    }

    @Override
    public void run() {
        while(mRunning) {
            mCpuStats.parseTopResults();

            Debug.getMemoryInfo(mi);

            if(mHandler != null) {
                mQosObject.cpuUsage = mCpuStats.getProcessCpuUsage();
                mQosObject.pss = mi.getTotalPss();
                mQosObject.vss = mi.getTotalPrivateDirty();
                mHandler.obtainMessage(VideoPlayerActivity.UPDATE_QOSMESS, mQosObject).sendToTarget();
            }
            try {
                sleep(3);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public void stopThread() {
        mRunning = false;
    }
}