Android onStartCommand服务

时间:2013-08-06 22:17:51

标签: java android service

我有一项服务,我试图不断运行,只要用户开启它。问题是该服务使用了大量的内存;我猜是因为它会通知用户并不断显示图像。所以我将大部分代码放在另一个活动中。该服务只是调用活动。

问题是我正在尝试使用返回Start_Sticky来在需要时重启服务。它需要大约2个小时才能耗尽足够的内存才能重新启动。当它重新启动它没有onStartCommand我错过了什么?

public class AUTOAlarmService extends Service {
@Override
public void onCreate() {
}

@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Intent DI = new Intent(getBaseContext(), AUTOSERVICES.class);
    DI.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    getApplication().startActivity(DI);
    return START_STICKY;
}

@Override
public boolean onUnbind(Intent intent) {
    return super.onUnbind(intent);
}

}

1 个答案:

答案 0 :(得分:1)

我认为您应该重新考虑一些已完成的工作,因为您的服务占用了太多资源而且不应该以任何方式发生。有很多应用程序有很多服务,但没有重新启动设备的问题。

但是,如果要重新启动服务,则必须停止,然后再次启动该服务。

stopService(new Intent(this, YourService.class));
startService(new Intent(this, YourService.class));

希望它有所帮助。