서비스가 시작되고 프로세스가 시작되면서부터 생기는 로그를 가지고 걸리는 패키지이름이 걸리면 막는 방식인거같은데...


어플을 실행하고 서비스까지는 잘 실행되는데 그다음부터는 어플을 실행해도 소스가 잘못된건지 동작을 안하는거같네요 ㅠㅠ


process = Runtime.getRuntime().exec(

"/system/bin/logcat -b main -s ActivityManager:I"); 


이부분 부터 자세하게좀 설명좀 부탁드릴게요 ㅠㅠ

혹시 아래의 소스에 문제가 있는걸까요...?


private void runLog(){

Process process = null;

try{

//현재까지의 로그를 모두 지운다

Runtime.getRuntime().exec("/system/bin/logcat -c");

//로그읽기 시작

process = Runtime.getRuntime().exec(

"/system/bin/logcat -b main -s ActivityManager:I");

}catch(IOException e){

Log.e(getPackageName(),e.toString());

}

BufferedReader reader = null;

try{

reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

String line;

Log.i("LOG4 mStop", mStop+"");

while (mStop) { // 서비스 시작

line = reader.readLine();

// 액티비티 시작로그 잡아내기

// 패키지 이름으로 필터링

for (int i = 0; i < mPackageFilter_package.size(); i++) {

if (line.contains("cmp=" + mPackageFilter_package.get(i))) {

Log.i("LOG4 패키지이름 필터링 진입", "패키지이름 필터링 진입");

if (!mPassApp){

popupLock(mPackageFilter_package.get(i));

} else {

mPassApp = false;

}

}

}

}

}catch(IOException e){

Log.e(getPackageName(),e.toString());

}finally{

try{

reader.close();

}catch (IOException e){

Log.e(getPackageName(),e.toString());

}

process.destroy();

process = null;

mThread.stop();

mThread.destroy();

reader = null;

this.stopSelf();

}

}