2011-08-24 5 views
0

apk 설치 후 강제로 재부팅 할 수 있습니까?설치 후 재부팅

내 서비스가 시작되었는지 확인하고 싶기 때문에이를 강제로 작성하고 싶습니다.

+4

문제를 처리하는 데 나쁜 방법으로 들리지만 기기를 재부팅 할 필요없이 서비스가로드되었는지 확인할 수 있습니다. – Pierre

+0

가능한 복제본은 http://stackoverflow.com/questions/2127044/how-to입니다. -start-android-service-on-installation –

+0

@Emmanuel : 나는 중복을 말하지 않을 것이다. 질문은 또 다른 질문이다. 그러나 올바른 방법은 다른 질문이하는 것을하는 것이다. –

답변

2

아마도 대답은 아니요이며 앱에서 그런 일을 할 수 없습니다. 이것은 전화를 보유한 사용자 (그리고 아마도 핵심 시스템 서비스)의 유일한 특권입니다.

그러나 사용자가 기본 활동을 시작할 때 서비스가 시작되도록 보장 할 수 있습니다. 이는 사용자가 응용 프로그램을 설치 한 직후 매우 일반적인 행동입니다.

자세한 내용은 실제로 수행하려고 시도해야하는 질문 How to start android service on installation을 참조하십시오.

+0

ok, 설치 후 사용자가 재시작해야한다는 메시지를 남길 수 있습니까? – user902131

+1

왜 사용자가 전화를 재부팅 하시겠습니까? 서비스 시작을 보장하기 만하는 것이 아닙니다. 그렇다면 응용 프로그램을 시작할 때 응용 프로그램을 시작하려면 사용자에게 맡기십시오 (서비스 결과로). –

0

응용 프로그램을 설치하자마자 아무 것도 할 수 없기 때문에 사용자가 홈 화면에서 응용 프로그램을 처음 실행하기 전에는 아무 것도 할 수 없습니다. 명시 적으로들을 수있는 방송 조치가 없습니다. 당신이를 다시 부팅 안됩니다 어떤 경우에는,

  • android.intent.action.USER_PRESENT
  • android.intent.action.SCREEN_OFF, 또는
  • android.intent.action.SCREEN_ON

을 : 그러나 같은 많은 호출되는 일반적인 뭔가, 수신 할 수 있습니다 장치. 귀하의 사용자가 당신을 사냥하고 돌로 당신을 죽일 것입니다. 농담을 제쳐두고, Google은 실제로 시장에서 앱을 가져올 수 있습니다. 위에서 언급 한 작업 중 하나를 듣고 응용 프로그램이 방금 설치되었는지 (예 : 일회성 부울 환경 설정 사용) 확인하고 서비스를 시작하십시오.

참고 : 위의 작업 중 하나를 듣고 끝내려면 수신자가 의도를 처음 수신 할 때 해제하십시오. 당신은 (수신기에서)과 같이이 작업을 수행 할 수 있습니다이 서비스는 사용자 (몇 가지 적절한 시나리오이 거기에있다)에 절대적으로 중요하다 어떻게 든 경우

public class FirstTimeReceiver extends BroadcastReceiver { 

    public void onReceive (Context context, Intent intent) { 
     // start your service (which does stuff asynchronously, of course, and then: 
     final ComponentName mySelf = new ComponentName(context, FirstTimeReceiver.class); 
     context.getPackageManager().setComponentEnabledSetting(mySelf, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 
    } 

} 

그러나 만이 작업을 수행해야하고,하지 당신/당신의 앱을 위해. 언급 된대로 bjarkef으로 언급 했으므로 사용자가 홈 화면에서 앱을 시작한 후에 만 ​​시작해야합니다. 더 나은 방법은 사용자가 서비스를 실행할 수있는 권한을 요청하는 것입니다.

+0

thx 4 ur help.다시 부팅하지 않고이 방법을 시도해 보겠습니다 :-) 사용자가 옳다면 – user902131

+0

TIME_TICK 브로드 캐스트 인 텐트는 가능한 빨리 서비스를 시작하는 좋은 방법 일 수 있습니까? –

+1

불필요하게 사용자 전화기를 느리게하지 않기 위해 서비스를 시작한 직후에 수신자의 등록을 취소해야합니다. –

관련 문제