android-service生命周期的实践结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android-service生命周期的实践结果相关的知识,希望对你有一定的参考价值。

startService的生命周期实践:

public class MyService extends Service {
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        Log.i("msg","onCreate");
    }



    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.i("msg","onStartCommand");
        return super.onStartCommand(intent, flags, startId);
    }


    @Override
    public void onDestroy() {
        Log.i("msg","onDestroy");
        super.onDestroy();
    }
}

 

现在有两个activity,MainActivity、UselessActivity,MainActivity有个按钮启动UselessActivity,UselessActivity启动MyServier

1.MainActivity启动UselessActivity后,UselessActivity启动MyService

Log.i=msg: onCreate  msg: onStartCommand

①如果UselessActivity中不调用stopService(Intent):

 按返回到MainActivity,并不会打出Log.i=msg: onDestroy.  ★服务不会随着启动它的Activity一起销毁。★

 再按返回退出程序,再打开程序,启动service,打出Log.i=onStartCommand.而没有打出msg: onCreate,说明service还在  ★服务不会随着启动它的程序退出被销毁。★

 再按返回退出程序,并在手机的程序列表里把程序给删除掉,再打开程序,启动service,打出Log.i=onStartCommand.而没有打出msg: onCreate,说明service还在 ★服务不会因为启动它的程序被销毁而销毁。★

②如果在UselessActivity中的onDestroy调用stopService(Intent):

 UselessActivity:

    @Override
    protected void onDestroy() {
        super.onDestroy();
        stopService(intent);
    }

  

 按返回到MainActivity,打出Log.i=msg: onDestroy.   ★需要调用stopService(Intent),service才会被销毁。★

 

bindService的生命周期实践:(慢慢补充)

以上是关于android-service生命周期的实践结果的主要内容,如果未能解决你的问题,请参考以下文章

2react-生命周期1※※※

2react-生命周期1※※※

软件工程(C编码实践篇)学习总结

android从放弃到坚持放弃第二课(下)

C语言中,哪种存储类的作用域与生命周期是不一致的?

控制器 view 的生命周期变化总结