마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 부팅시 서비스 실행

0 추천

부팅시 서비스 실행하는 코드 짜봤습니다..  리시버가 호출이 안되네요..

Activity는 없는 서비스만 실행되는 코드입니다. 

Activity 있을때는 리시버가 호출이 되지만 Activity가 없으니 리시버가 호출이 안되네요..

왜그런지 아시는분 답변좀... ㅠㅠ

 

 

//메니페스트

    package="jyj.jyj.receiver"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <receiver android:name="jyj.jyj.receiver.Receiver" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>
 
        <service android:name="jyj.jyj.receiver.MyService" >
        </service>
    </application>
 
</manifest>
 
 
//브로드케스트리시버 자바
package jyj.jyj.receiver;
 
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;
 
public class Receiver extends BroadcastReceiver {
 
@Override
public void onReceive(Context context, Intent intent) {
Log.e("JYJ_TEST", "onReceive : BOOT_COMPLETED");
Toast.makeText(context, "onReceive : BOOT_COMPLETED", Toast.LENGTH_LONG).show();
 
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
context.startService(new Intent(context, MyService.class));
}
 
}
 
}
 
//서비스 자바
package jyj.jyj.receiver;
 
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
 
public class MyService extends Service {
 
 
 
@Override
public void onCreate() {
Toast.makeText(getBaseContext(), "써비스 시작ㅋㅋ", Toast.LENGTH_LONG).show();
super.onCreate();
}
 
@Override
@Deprecated
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
}
 
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
 
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
 
}
 
 

 

익명사용자 님이 2013년 10월 9일 질문

1개의 답변

0 추천
android.intent.action.BOOT_COMPLETED 는

사용자가 해당 앱을 한 번 이상 직접 실행해야 동작합니다.

아마도 사용자 보호를 위해 이렇게 해놓지 않았나 싶습니다.
익명사용자 님이 2013년 10월 10일 답변
답변감사합니다 도움이 되었습니다.
결국 Activity 생성해서 onCreate()함수에서 finish() 해서 해결하였습니다
제가 지금 몇일째 계속 해매서그러는데,, 부팅시 서비스 실행하는 간단한코드 저한테도 좀 공유가능할까요??
제 메일주소입니다 l3j3h@naver..com
...