2012-03-07 3 views
0

다음은 서비스를 시작하기위한 코드입니다.Android4.0 서비스가 시작되었습니다

public class MyStartupIntentReceiver extends BroadcastReceiver 
{ 
public void onReceive(Context context, Intent intent) 
{ 
    Intent callService = new Intent(); 
    callService.setAction("com.xxxx.yyyy.services.StartServiceActivity"); 
    context.startService(callService); 
} 
} 

다음과 같이 브로드 캐스트 수신기를 정의하고 있습니다.

<receiver android:name=".MyStartupIntentReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED"  
/>    
</intent-filter> 
</receiver> 

임은 사용자가 내 활동에서 내 응용 프로그램의 메신저 시작 서비스를 시작하면

serviceIntent = new Intent(SplashScreen.this, StartServiceActivity.class); 
getApplicationContext().startService(serviceIntent); 

문제는 서비스가 android2와 잘 작동된다 매니페스트 파일

<service android:name=".services.CallService"> 
    <intent-filter> 
      <action    
      android:name="com.xxxx.yyyy.services.StartServiceActivity" /> 
    </intent-filter> 

    </service> 

에서 다음과 같이 서비스를 선언. 3.5 SDK 장치. 4.0 장치가 아닙니다. 내 코드에 문제가 있습니다. 해결하도록 도와주세요.

답변

0

나는, 인터넷에서 기사를 찾으 u를 도울 수 있기를 바랍니다 :

방송 회귀 이전 포스트에서

을 확정, 나는 BOOT_COMPLETED 방송가 상자 밖으로 작동하지 않습니다 증거를 인용 사용자가 앱을 사용할 때까지 Android 3.1.

실제로는 그보다 다소 크다. 내가 해명을 추구 제기 한 문제에

는 양 Hackborn가 표시 :

응용 프로그램은 그들이 "정지"에 설치되어있는 경우 3.1부터는 상태가 사용자가 명시 적으로 시작 때까지 실행할 수 없습니다 있도록 그들. 강제 중지를 누르면이 상태로 돌아갑니다.

결과적으로 응용 프로그램을 처음 설치하면 사용자가 수동으로 시작하지 않는 한 시스템에서 완전히 무시됩니다. 런처 활동을 클릭하거나 응용 프로그램 위젯을 추가 할 가능성이 높습니다.

사용자 개입없이 일종의 시스템 브로드 캐스트를 사용하는 개발자는 Android 3.1 용 앱을 조정해야합니다.

내가 이전 포스트에서 썼던 것처럼

:

나는 대부분의 애플 리케이션이 확인 될 것으로 기대합니다. 예를 들어, 부팅 수신기가 AlarmManager 일정을 설정하는 경우 사용자가 알람을 설정하기 위해 전화기를 재부팅 할 필요가 없도록 앱이 처음 실행될 때 일정을 설정해야합니다. 그 패턴은 변하지 않습니다. 사용자가 자신의 활동 중 하나를 실행할 때까지는 전화를 재부팅하면 알람이 설정되지 않습니다.

업데이트 : 위 인용문을 명확히하기 위해 사용자가 앱을 처음 실행하면 (강제 종료하지 않음) 모든 것이 이전처럼 작동합니다. 다시 부팅하면 BOOT_COMPLETED 브로드 캐스트가 수신됩니다. 그러나 사용자가 앱을 수동으로 실행하기 전까지 또는 실행하지 않을 경우 브로드 캐스트가 수신되지 않습니다. 사용자가 응용 프로그램을 수동으로 실행하기 전까지 그리고 실행하지 않는 한 사용자가 강제로 앱을 중지하면 브로드 캐스트가 수신되지 않습니다. 이 변경 사항은 맬웨어가 사용자 지식없이 실행될 수있는 방법을 제한하여 보안을 한 단계 끌어 올리기 때문에 대단히 충격적입니다. 완전한 보안을 제공하지는 않지만 악성 프로그램은 Angry Birds 실행기 아이콘의 사본을 설치할 수 있으며 사용자가 실수를 저지를 수 있다는 점을 개선했습니다.

관련 문제