분단위 시간표시와 함께 DB에서 일부내용 검색해서 위젯에 표시하는 기능인데...

폰을 많이 사용 하지 않으면 괜찮은데 폰에서 구글지도검색같은 CPU와 통신을 많이 쓰는 작업을 하면 서비스가 죽으면서 다음부터 업데이트가 안됩니다.

서비스가 죽었음을 감지해서 다시 시작해준다든가 아니면 아예 죽지않게 하려면 어떤 조치를 해야 할까요???

도움좀 주세요....

소스일부 아래....

 

public class Widgetprovider extends AppWidgetProvider {

    @Override
    public void onDisabled(Context context) {
        super.onDisabled(context);
        context.stopService(new Intent(context, UpdateService.class));
    }

    @Override
    public void onEnabled(Context context) {
        super.onEnabled(context);
        context.startService(new Intent(UpdateService.ACTION_UPDATE));
    }

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        context.startService(new Intent(UpdateService.ACTION_UPDATE));
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
        context.startService(new Intent(UpdateService.ACTION_UPDATE));
    }   
   
    public static final class UpdateService extends Service {
        static final String ACTION_UPDATE = "com.dkeg.action.WIDGET_UPDATE";

        private final static IntentFilter sIntentFilter;

        static {
            sIntentFilter = new IntentFilter();
            sIntentFilter.addAction(Intent.ACTION_TIME_TICK);
        }

        @Override
        public void onCreate() {
            super.onCreate();
            registerReceiver(brReceiver, sIntentFilter);
        }

        @Override
        public void onDestroy() {
            super.onDestroy();
            unregisterReceiver(brReceiver);
        }
       
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }

        @Override
        public void onStart(Intent intent, int startId) {
            super.onStart(intent, startId);

             ........

             디비검색 조건

             update(tdik);

        }
       
     private void update(int tdik) {         
       디비검색    
         ..................
    }
   
    private final static BroadcastReceiver brReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
         final String action = intent.getAction();
         if(action.equals(Intent.ACTION_TIME_TICK)) {
           context.startService(new Intent(UpdateService.ACTION_UPDATE));          
          }              
        }
    };

 public static RemoteViews getRViews(Context context, int i, String sday) {
   Intent intent = new Intent(context, Mainscreen.class);
   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
     intent, PendingIntent.FLAG_CANCEL_CURRENT);
        
   RemoteViews views = new RemoteViews(context.getPackageName(),
           R.layout.widgetprovider);

.

.

..

.

.

.

}