应用程序暂停使用一段时间后,android服务停止工作

时间:2011-02-19 20:05:22

标签: android service

我的应用程序服务运行良好,但当用户不使用电话时,如20分钟,该服务不再工作。是否有一些我认为要做的事情就像拯救一个国家或某事一样,我现在迷失了。我不明白为什么服务doest继续运行,我查看应用程序>在我的手机上运行服务,它仍然说它正在运行。有什么建议吗?

4 个答案:

答案 0 :(得分:5)

我几次回来时遇到了同样的问题。然后我开始使用Android Alarm Service。这解决了我的问题。以下是参考链接http://android-er.blogspot.com/2010/10/simple-example-of-alarm-service-using.html

答案 1 :(得分:4)

如果你想继续在后台运行(例如下载东西),你需要拿一个唤醒锁(http://developer.android.com/reference/android/os/PowerManager.html)

另外,如果您碰巧在后台进行下载,请查看以下内容: http://developer.android.com/reference/android/net/ConnectivityManager.html#getBackgroundDataSetting()

答案 2 :(得分:4)

您可以使用广播接收器来使用类似的服务。 并且它可以与警报管理器的服务相同。 接收器:

public class CallListReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

    Toast.makeText(context, "Call List receiver called", Toast.LENGTH_LONG)
            .show();

    }
}

您可以使用以下方式继续调用它:

public void startAlert(Context context) {
Intent call_intent = new Intent(this, CallListReceiver.class);
    PendingIntent pendingCallIntent = PendingIntent.getBroadcast(context,
            0, call_intent, 0);
    AlarmManager call_alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    call_alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
            System.currentTimeMillis(), (7 * 1000), pendingCallIntent);
}

答案 3 :(得分:3)

这个Android的行为是A服务的最长寿命为20分钟。 20分钟后,它将被Android操作系统自动杀死。但我认为有一个解决方案。我还没有测试过它。解决方案是: 在onStartCommand()中,将此代码放在此方法的末尾 return START_STICKY;