2013-06-01 9 views
0

I my app Я использую Handler, который выполняет свою работу через каждые 1 минуту. Это в моей MainActivity проблема в том, что через некоторое время она перестает работать. Это происходит в samsung galaxy note gt n7000, но когда я запускаю тот же код в другом немаркированном телефоне, он отлично работает. Я использую Handler как следующий, что не так с ним?Обработчик останавливается через некоторое время

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
final Handler handler = new Handler(); 
     Runnable runnable = new Runnable() 
     { 
      public void run() 
      { 
         //doing some Task 
       handler.postDelayed(this, 60000); 
      } 
     }; 
     runnable.run(); 
} 
+0

Трудно ответить на этот вопрос правильно без контекста, поэтому приведите его сюда. –

+0

У меня была такая же проблема, что и у обработчика, останавливается, если телефон идет спать или его блокирует. Вы можете использовать alarmmanager, его работы даже в режиме сна. Надеюсь, это поможет вам. –

ответ

0

Обработчик может прекратить работать по многим причинам.

Два очевидны:

  • процесс был убит
  • процессор перестал делать что-нибудь, потому что телефон пошел спать

Обратите внимание, что код вызывает утечку памяти после того, как активность разрушается.

В любом случае используйте AlarmManager для достижения того, чего вы хотите достичь.

Edit:

штраф (и довольно короткий) прочитать о том, почему AlarmManager правильный путь от CommonsWare: http://www.androidguys.com/2009/09/09/diamonds-are-forever-services-are-not/

0

Или вы можете использовать службу .. (Service с уведомлениями не будет быть убитым андроидом os). Некоторые приложения, такие как Rounder и GloveBox, используют уведомления, чтобы предотвратить их уничтожение системой.

+0

Сервис не будет препятствовать тому, чтобы процессор слишком ленив для выполнения. ;) –

+0

однако, если вы хотите, чтобы ваше приложение работало, даже если устройство перешло в спящий режим, вам нужно использовать службы и лучше использовать их с уведомлениями. – Alex

Смежные вопросы