Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将服务绑定放在onStart()上是否不好?_Java_Android_Service_Binding_Bind - Fatal编程技术网

Java 将服务绑定放在onStart()上是否不好?

Java 将服务绑定放在onStart()上是否不好?,java,android,service,binding,bind,Java,Android,Service,Binding,Bind,我这里有两项活动。 它们中的每一个都将与我尝试绑定的单个服务进行交互 但是如果我把每个活动的onStart()方法都放入绑定代码,这是不是很糟糕 protected void onStart() { super.onStart(); if(playIntent==null){ playIntent = new Intent(this, MusicService.class); bindService(playIntent, musicConnection, Context

我这里有两项活动。 它们中的每一个都将与我尝试绑定的单个服务进行交互

但是如果我把每个活动的onStart()方法都放入绑定代码,这是不是很糟糕

protected void onStart() {
  super.onStart();
  if(playIntent==null){
    playIntent = new Intent(this, MusicService.class);
    bindService(playIntent, musicConnection, Context.BIND_AUTO_CREATE);
    startService(playIntent);
  }
}
如果从活动-A转到活动-B,然后按后退按钮,会怎么样? 因为Android会再次调用onStart()方法,这样可以吗, 这意味着再次绑定它

从同一个活动中重新绑定两次会是坏习惯还是什么


我在android开发者网站上找到的关于活动流程的参考资料如下:

  • 在匹配过程中,通常应将绑定和解除绑定配对 提出并执行
    客户生命周期中的关键时刻

    例如:

  • 如果您只需要在活动停止时与服务交互 可见,您应该在onStart()期间绑定,并在onStart()期间解除绑定 onStop()

  • 如果您希望您的活动在运行时收到响应 在后台停止,然后可以在onCreate()和 在onDestroy()期间解除绑定

    请注意,这意味着您的活动需要在服务运行的整个过程中(即使在后台)使用该服务,因此,如果该服务位于另一个进程中,则您会增加该进程的权重,系统将更有可能终止该服务。

    注意:在活动的onResume()和onPause()期间,通常不应绑定和解除绑定,因为这些回调发生在每个生命周期转换时,您应该将这些转换时发生的处理保持在最低限度。此外,如果应用程序中的多个活动绑定到同一个服务,并且其中两个活动之间存在转换,则在下一个活动绑定(恢复期间)之前,该服务可能会被销毁并重新创建为当前活动解除绑定(暂停期间)


  • 这是我在android开发者网站上发现的:

  • 在匹配过程中,通常应将绑定和解除绑定配对 提出并执行
    客户生命周期中的关键时刻

    例如:

  • 如果您只需要在活动停止时与服务交互 可见,您应该在onStart()期间绑定,并在onStart()期间解除绑定 onStop()

  • 如果您希望您的活动在运行时收到响应 在后台停止,然后可以在onCreate()和 在onDestroy()期间解除绑定

    请注意,这意味着您的活动需要在服务运行的整个过程中(即使在后台)使用该服务,因此,如果该服务位于另一个进程中,则您会增加该进程的权重,系统将更有可能终止该服务。

    注意:在活动的onResume()和onPause()期间,通常不应绑定和解除绑定,因为这些回调发生在每个生命周期转换时,您应该将这些转换时发生的处理保持在最低限度。此外,如果应用程序中的多个活动绑定到同一个服务,并且其中两个活动之间存在转换,则在下一个活动绑定(恢复期间)之前,该服务可能会被销毁并重新创建为当前活动解除绑定(暂停期间)


  • 这是我在android开发者网站上发现的:

  • 在匹配过程中,通常应将绑定和解除绑定配对 提出并执行
    客户生命周期中的关键时刻

    例如:

  • 如果您只需要在活动停止时与服务交互 可见,您应该在onStart()期间绑定,并在onStart()期间解除绑定 onStop()

  • 如果您希望您的活动在运行时收到响应 在后台停止,然后可以在onCreate()和 在onDestroy()期间解除绑定

    请注意,这意味着您的活动需要在服务运行的整个过程中(即使在后台)使用该服务,因此,如果该服务位于另一个进程中,则您会增加该进程的权重,系统将更有可能终止该服务。

    注意:在活动的onResume()和onPause()期间,通常不应绑定和解除绑定,因为这些回调发生在每个生命周期转换时,您应该将这些转换时发生的处理保持在最低限度。此外,如果应用程序中的多个活动绑定到同一个服务,并且其中两个活动之间存在转换,则在下一个活动绑定(恢复期间)之前,该服务可能会被销毁并重新创建为当前活动解除绑定(暂停期间)


  • 这是我在android开发者网站上发现的:

  • 在匹配过程中,通常应将绑定和解除绑定配对 提出并执行
    客户生命周期中的关键时刻

    例如:

  • 如果您只需要在活动停止时与服务交互 可见,您应该在onStart()期间绑定,并在onStart()期间解除绑定 onStop()

  • 如果您希望您的活动在运行时收到响应 在后台停止,然后可以在onCreate()和 在onDestroy()期间解除绑定

    请注意,这意味着您的活动需要在服务运行的整个过程中(即使在后台)使用该服务,因此,如果该服务位于另一个进程中,则您会增加该进程的权重,系统将更有可能终止该服务。

    注意:在活动的onResume()和onPause()期间,通常不应绑定和解除绑定,因为这些回调发生在每个生命周期转换时,您应该将这些转换时发生的处理保持在最低限度。另外,如果应用程序中的多个活动绑定到同一个服务