2013-09-18 2 views
0

Мое приложение отправляет обновления gps в API. Мне нужно, чтобы мое приложение постоянно работало в фоновом режиме. Но, к сожалению, мое приложение всегда заканчивается в какой-то момент на фоне. Я прочитал, что, когда использование приложения в процессоре низкое, приложение будет автоматически убито. Я не хочу, чтобы это произошло. Я уже включал в себя частичную блокировку бодрствования на моих OnCreate метод в моем приложении, используя этот код:Приложение убивается на фоне

powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); 
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock"); 

Тогда на паузе:

Я действительно не знаю, как предотвратить мое заявление было убито. Я также попытался использовать полный блокиратор, но он устарел. Любые идеи о том, как я смогу сохранить свое приложение на фоне? Я никогда не хочу, чтобы мое приложение было убито на фоне. Благодаря!

ответ

3

Вы не можете.

Просто убедитесь, что вы сохраняете все, что должно выжить после убийства.

Для чего-либо, что должно запустить в фоновом режиме, даже если приложение не показывается пользователю:
Используйте Service и установите его в режим переднего плана.

+0

Означает ли это, что в какой-то момент, приложение будет убит? – ljpv14

+0

Да, и это естественная вещь. Android позаботится об этом. Подробнее читайте здесь: https://developer.android.com/training/basics/activity-lifecycle/index.html – flx

+0

Дело в том, что не нужно останавливать приостановленные действия, кроме кеширования, для более быстрого возобновления. Если вы действительно хотите ** запустить ** код в фоновом режиме, то служба - это то, что вы хотите. – flx

0
public class BGService extends Service { 

    private PowerManager powerManager; 
    private WakeLock wakeLock; 

    @Override 
    public void onCreate() { 
     // TODO Auto-generated method stub 
     super.onCreate(); 

     powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); 
     wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, 
       "MyWakeLock"); 
     wakeLock.acquire(); 
    } 

вызов и начать службу в своей основной деятельности

public class SendSMSActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.demo); 
     startService(new Intent(this, BGService.class)); 
    } 

} 
+0

Можете ли вы объяснить, что это делает с моей блокировкой следа? Благодаря! – ljpv14

+0

ваш звонок блокировки блокировки в service.and эта служба начнет фон при запуске приложения. Вы решили свой вопрос или нет? – dipali

+0

пожалуйста, код полезен для вас. Пожалуйста, проголосуйте – dipali

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