应用程序停止后服务正在运行

时间:2013-05-18 05:26:13

标签: android android-service

我正在尝试运行服务,当我停止我的应用程序服务仍在运行意味着它继续其任务。停止我们的应用程序时停止服务的方法是什么?请帮助我如何停止这项服务。还有一件事是,如果我在这个类中使用intent来回到那个服务调用的类我移回去但是当我按下模拟器上的按钮返回时它也会显示该服务屏幕。

我正在展示服务类代码

public class SetMovableBG_Inbuilt_SetImage extends Service
{
    Timer mytimer;
    int interval = 2000;
    int interval1 = 4000;
    Drawable drawable;
    WallpaperManager wpm;
    int prev = 0;
    int numImage;
    private ArrayList<Integer> imgId;

    @Override
    public void onCreate()
    {
        super.onCreate();
        mytimer = new Timer();
        wpm = WallpaperManager.getInstance(this);
    }

    // here i am geting intent from the class from where i am calling this class.
    //everything  works fine but service not stops even after stop the app
    @Override
    public int onStartCommand(Intent intent, int flags, int startId)
    {
        imgId = intent.getIntegerArrayListExtra("ImgId");
        numImage = imgId.size();
        mytimer.schedule(new TimerTask()
        {
            @Override
            public void run()
            {
                // TODO Auto-generated method stub
                if ( prev >= numImage )
                {
                    prev = 0;
                }
                try
                {
                    wpm.setResource(imgId.get(prev));
                }
                catch ( IOException e )
                {
                    e.printStackTrace();
                }
                prev++;
            }
        }, interval, interval1);
        return super.onStartCommand(intent, flags, startId);
    }

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

1 个答案:

答案 0 :(得分:2)

您可以使用Service.stopService方法停止其他组件(如活动)的服务。您可以使用Service.stopSelf方法从服务本身停止服务。根据文件

  

已启动的服务必须管理自己的生命周期。也就是说,系统   除非必须恢复系统,否则不会停止或销毁服务   在onStartCommand()之后内存和服务继续运行   回报。因此,服务必须通过调用stopSelf()或来自行停止   另一个组件可以通过调用stopService()来阻止它。

要了解有关服务的详情,请参阅here