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

부팅시 서비스가 죽어버리는 현상

0 추천
public class BootReceiver extends BroadcastReceiver {
         ComponentName comp;
         
         @Override
         public void onReceive(Context context, Intent intent) {
        	 Log.d("BootReceiver","BootReceiver Running");
        	 if( "android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
        		ComponentName cName = new ComponentName(context.getPackageName(), Lock.class.getName());
        		
         	    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
         	    Editor edit = pref.edit();

                boolean check_value = pref.getBoolean("s_serv", false);
                boolean boot_value = pref.getBoolean("devBoot", false);
           	 	Log.d("BootReceiver","check : " + String.valueOf(check_value));
                
                if(check_value) {
               	 	Log.d("BootReceiver","Service on");
               	 	edit.putBoolean("devBoot", true);
               	 	edit.commit();
               	 	ComponentName service = context.startService(new Intent().setComponent(cName));
                }
                else {
               	 	edit.putBoolean("devBoot", false);
               	 	edit.commit();
               	}
        		Log.v("boot_complete","The service loaded at boot!");
        	}
        }
}

소스는 위와 같고요

부팅하자마자 동작하게 설정해놓고 실행해봤는데 서비스가 실행이 안되서 로그를 확인해보니 다음과 같았습니다
 
06-06 03:26:05.207: I/PackageManager(92): Removing non-system package:uos.capstone.locker
06-06 03:26:05.207: I/ActivityManager(92): Force stopping package uos.capstone.locker uid=10040
06-06 03:26:05.207: I/ActivityManager(92): Killing proc 292:uos.capstone.locker/10040: force stop
06-06 03:26:05.217: I/ActivityManager(92): Killing proc 308:uos.capstone.locker:remote/10040: force stop
06-06 03:26:05.667: D/dalvikvm(92): GC_CONCURRENT freed 661K, 7% free 16092K/17159K, paused 8ms+11ms
06-06 03:26:05.830: I/PackageManager(92): Package uos.capstone.locker codePath changed from /data/app/uos.capstone.locker-1.apk to /data/app/uos.capstone.locker-2.apk; Retaining data and using new
06-06 03:26:05.837: I/PackageManager(92): Running dexopt on: uos.capstone.locker
06-06 03:26:07.277: D/dalvikvm(522): DexOpt: load 198ms, verify+opt 783ms
06-06 03:26:07.458: W/PackageManager(92): Code path for pkg : uos.capstone.locker changing from /data/app/uos.capstone.locker-1.apk to /data/app/uos.capstone.locker-2.apk
06-06 03:26:07.458: W/PackageManager(92): Resource path for pkg : uos.capstone.locker changing from /data/app/uos.capstone.locker-1.apk to /data/app/uos.capstone.locker-2.apk
06-06 03:26:07.477: I/ActivityManager(92): Force stopping package uos.capstone.locker uid=10040
06-06 03:26:07.690: D/PackageManager(92): New package installed in /data/app/uos.capstone.locker-2.apk
06-06 03:26:07.697: W/PackageManager(92): Unknown permission android.permission.BOOT_COMPLETED in package uos.capstone.locker
06-06 03:26:07.697: W/PackageManager(92): Unknown permission android.permission.ACCESS_BACKGROUND_SERVICE in package uos.capstone.locker
06-06 03:26:07.859: I/ActivityManager(92): Force stopping package uos.capstone.locker uid=10040
 
아무래도 여기서 걸리는게 "Removing non-system package:uos.capstone.locker" 이 부분 같은데 이것때문에 강제로 종료되는 것 같습니다. 왜 이런현상이 나타나는걸까요...
익명사용자 님이 2013년 6월 6일 질문

1개의 답변

0 추천
로그에 이런게 있네요.
06-06 03:26:07.697: W/PackageManager(92): Unknown permission android.permission.BOOT_COMPLETED in package uos.capstone.locker
 
이거 아닌가요?
android.permission.BOOT_COMPLETED -> android.permission.RECEIVE_BOOT_COMPLETED
 
익명사용자 님이 2013년 6월 7일 답변
...