, 당신이 할 필요는 오버라이드 (override) 할 필요가 수행 Service
.TO에서 등록되는 Service
의 onCreate()
.
서비스가 다음과 비슷한 모습이 될 것입니다
public class SmsService extends Service
{
private SmsReceiver receiver; //global so we can unregister it when the time comes.
public void onCreate()
{
super.onCreate();//call to super
//make a new intent filter so that all incoming SMS get to you as well
IntentFilter smsFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
receiver = new SmsReceiver(); //make a new SmsReceiver
registerReceiver(receiver, smsFilter); //register the Receiver
}
public void onDestroy()
{
unregisterReceiver (receiver); //unregisters the Receiver if Service is killed
super.onDestroy();
}
}
를 매니페스트에 필요한 SMS 권한을 포함하며 매니페스트에 Service
를 선언하는 것을 기억해야합니다.
<service android:name=".SmsService" >
</service>
서비스가 오류를 가지고 있으며이 코드를 원하는 'code' @Override \t 공공 IBinder onBind (의도는 arg0) { \t \t // TODO 방법 스텁을 \t \t는 null를 자동 생성; \t} – nestorasg
또 다른 문제는 서비스를 시작하지 않고 응용 프로그램을 시작하면 브로드 캐스트 수신기가 작동하기 시작한다는 것입니다. 어떤 생각? – nestorasg
첫 번째 코멘트는 예, onBind를 재정의해야합니다. 바인딩하지 않을 경우 Eclipse를 구현 한 상태로 유지하는 것이 좋습니다. 너의 2 일. 매니 페스트에 수신기를 선언하지 마십시오. 일단 매니페스트에서 선언되면 앱의 일부가 실행되는 동안 리시버가 계속 실행됩니다. –