我的应用程序向API发送gps更新。我需要我的应用程序一直在后台运行。但不幸的是,我的应用程序总是在背景时结束。我已经读过,当应用程序的cpu使用率很低时,应用程序将被自动杀死。我不希望这种情况发生。我已经在我的应用程序中使用以下代码在onCreate方法中包含了部分唤醒锁:
powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
然后暂停:
protected void onPause()
{
super.onPause();
onBackground = true;
wakeLock.acquire();
Log.w("OnPause", "OnPause");
}
我真的不知道如何防止我的应用程序被杀死。我也试过使用完全唤醒锁,但它已被弃用。关于如何让我的应用程序在后台运行的任何想法?我从不希望我的应用程序在后台被杀死。谢谢!
答案 0 :(得分:3)
你不能。
请确保,你坚持杀死任何应该存活的东西。
对于在后台运行的任何内容,即使该应用未向用户显示:
使用Service
并将其设置为前台模式。
答案 1 :(得分: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));
}
}