Я создал appWidget, который регистрирует некоторые службы в его методе onEnabled ().
Проблема заключается в том, что после использования встроенного в Task Memmory / Ram диспетчера задач происходит сбой представления appWidget (всеappWidgets Текст TextView имеет значение по умолчанию (TextView), и службы перестают работать и никогда не перезапускаются.
Это происходит только через некоторое время, когда виджет установлен, и если я очищаю память / баран сразу после установки виджетаошибка не происходит, но я думаю, что это связано с методом очистки ОЗУ в диспетчере задач.
Итак, наконец, мой вопрос: есть ли способ заставить систему Android перезапустить эти службы?как и другие виджеты приложений, которые я скачал с маркета, похоже, после этой процедуры нормально работает.
Будем рады идеям и решениям!Спасибо, Gal:)
некоторый код, который я использую:
метод onEnabled () в appWidget:
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
Intent newinIntent = new Intent(context, CallService_1x1.class);
context.startService(newinIntent);
newinIntent = new Intent(context, SmsService_1x1.class);
context.startService(newinIntent);
}
Некоторые методы из одной из служб (другие услуги очень похожи, поскольку это из их абстрактного метода):
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// We want this service to continue running until it is explicitly
// stopped, so return sticky.
Log.d("SERVICE-SMS","CallMonitorService - onStartCommand created");
return START_STICKY;
}
@Override
public void onCreate() {
super.onCreate();
context = this.getApplicationContext();
Log.d("SERVICE-SMS","CallMonitorService created");
registerObserver();
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
}
@Override
public void onDestroy() {
unregisterObserver();
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
/**
* Start the service to process that will run the content observer
*/
public static void beginStartingService(Context context) {
Log.d("SERVICE-SMS","CallMonitorService: beginStartingService()");
context.startService(new Intent(context, CallService.class));
}
/**
* Called back by the service when it has finished processing notifications,
* releasing the wake lock if the service is now stopping.
*/
public static void finishStartingService(Service service) {
Log.d("SERVICE-SMS","CallMonitorService: finishStartingService()");
service.stopSelf();
}