Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.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
Android 我应该使用服务而不是后台活动吗?_Android_Service - Fatal编程技术网

Android 我应该使用服务而不是后台活动吗?

Android 我应该使用服务而不是后台活动吗?,android,service,Android,Service,现在我有了一个可以播放音乐的mp3播放器,我想知道我应该使用服务而不是活动 我有两种在后台播放音乐的方法(当用户按下后退按钮时继续播放) 当用户按下后退按钮时,我覆盖onBackPressed(),并将活动移动到后台,就像用户按下home按钮一样,因此当用户再次启动我的应用程序时,它将按预期显示 我读了一些关于重写onBackPressed()的文章,有些人说在后台做一些工作不是一个好方法,更好的方法是使用service.:)。所以我的想法是,当用户按下后退按钮时,我调用finish()来销毁并

现在我有了一个可以播放音乐的mp3播放器,我想知道我应该使用服务而不是活动

我有两种在后台播放音乐的方法(当用户按下后退按钮时继续播放)

  • 当用户按下后退按钮时,我覆盖
    onBackPressed()
    ,并将活动移动到后台,就像用户按下home按钮一样,因此当用户再次启动我的应用程序时,它将按预期显示

  • 我读了一些关于重写
    onBackPressed()
    的文章,有些人说在后台做一些工作不是一个好方法,更好的方法是使用service.:)。所以我的想法是,当用户按下后退按钮时,我调用
    finish()
    来销毁并释放活动,然后我创建一个服务,可以从活动完成时开始播放音乐,并发出通知,帮助用户返回主活动

  • 我认为第一种方法非常简单,易于实现,但不推荐使用。第二种方法更好,但更复杂,我不认为这种方法比第一种方法优化内存

    我很想知道我该用哪一种。请告诉我以上两种方法中更好的一种,或者如果你最近有类似的工作经验,请告诉你在这种情况下的方法


    谢谢。

    如果我正确理解了您的问题,您应该使用服务


    请参阅。

    如果我正确理解了您的问题,您应该使用服务


    请参阅。

    您应该为此使用服务

    理想情况下,你应该使用

    这将防止系统终止您的服务


    请看

    您应该为此使用服务

    理想情况下,你应该使用

    这将防止系统终止您的服务


    请看

    谢谢,但是你能告诉我为什么第一种方法不好吗?我真的怀疑你的第一种方法是否能正常工作。后台的活动由操作系统管理,而不是由开发人员管理。如果你想在很长一段时间内做一些“背景”工作,你必须确保,事实上,这项工作会完成。因为你不知道它什么时候会完成(当你正在实现一个MP3播放器时),你最好的选择是一个服务(而不是一个异步任务),所以唯一的原因是因为我们不知道我们的应用程序什么时候会被操作系统杀死?这不是因为优化内存?我不认为内存使用方面会有什么不同,但我可能错了。但是请记住,一项活动并不适合你想要完成的事情。活动不是执行后台工作的理想方式,它们适合用户交互,而后台MP3播放器则不是。太好了,我要试试。非常感谢,祝你度过愉快的一天。谢谢,但是你能告诉我为什么第一种方法不好吗?我真的怀疑你的第一种方法是否能正常工作。后台的活动由操作系统管理,而不是由开发人员管理。如果你想在很长一段时间内做一些“背景”工作,你必须确保,事实上,这项工作会完成。因为你不知道它什么时候会完成(当你正在实现一个MP3播放器时),你最好的选择是一个服务(而不是一个异步任务),所以唯一的原因是因为我们不知道我们的应用程序什么时候会被操作系统杀死?这不是因为优化内存?我不认为内存使用方面会有什么不同,但我可能错了。但是请记住,一项活动并不适合你想要完成的事情。活动不是执行后台工作的理想方式,它们适合用户交互,而后台MP3播放器则不是。太好了,我要试试。非常感谢,祝你今天愉快。