2014. 8. 19. 11:29

USB Connector를 이용한 어플 개발 중 USB를 꽂을때마다 해당 앱이 자동실행+중복실행되었다.


singleinstance singletask singletop 전부 무용지물.


별별 방법을 다 쓰다가 소스상으로 원천봉쇄하는데 성공


private static boolean isAppRunning = false;

private boolean isDuple = false;


@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

Log.i(TAG,"onCreate");

setContentView(R.layout.splash);

if(isAppRunning)

{

isDuple = true;

finish();

}

else

{

isAppRunning = true;

//이후 정상적으로 실행할 부분

//

//

}

}



@Override

public void onDestroy()

{

super.onDestroy();

Log.i(TAG,"onDestroy");

if(isDuple)

{


}

else

{

isAppRunning = false;

}

}


마지막은 !isDuple로 바로 끝나도 될 것.

static변수는 어플이 중복실행되어도 변하지 않는다는 점을 이용했다.

이제 고민은 어플이 실행 중 사망하셨을 때 이 루틴이 어떻게 처리될 것인가 하는 것.


Posted by newkie