我需要一些关于后台服务的帮助或建议。
我想要实现这一点。我有一个应用程序与一些视图,应用程序也有一个始终保持运行的后台服务。
在我的视图中,只要按下该按钮,就会有一个按钮,该按钮将一些文件传递给后台服务,而我的后台服务将该文件上传到某个服务器上。
我完成了上传过程。现在我想知道如何制作始终保持运行的后台服务,并在点击按钮时将文件发送到服务。
我是后台服务实施的新手。
请向朋友们提供一些教程,建议或指南。
非常感谢
答案 0 :(得分:4)
您可能已经阅读了一些Android服务文档,但我建议您进一步研究并查看本地服务示例,如果您还没有这样做:
http://developer.android.com/reference/android/app/Service.html
听起来您已经启动并运行了服务,我认为您现在要解决的实际问题是如何将数据从您的服务传递到您的服务。当您的Activity绑定到属于同一应用程序的服务时,该服务在同一进程中并在同一主UI线程上运行,因此一旦从服务绑定后获得IBinder对象,您可以直接从您的Activity调用该服务中的函数。同样,您可以从Activity中传递Service一个处理程序对象,以便服务可以向您的Activity发送消息或发布Runnables。因此,与本地服务的通信非常简单。
因此,如果您查看上面链接中的本地服务示例,您将在代码中看到一个部分,我们在完成绑定后获得对服务的引用:
mBoundService = ((LocalService.LocalBinder)service).getService();
在此之后,可以直接调用同一应用程序中该服务的方法。例如,您可以在服务中使用名为sendFile的方法。在您的活动中,您可能会执行以下操作:
mBoundService.sendFile( myStuffObject );
Stack Overflow上有很多关于活动和服务之间通信的问题,我认为你会发现搜索和阅读这些问题是有益的。
答案 1 :(得分:3)
在这种情况下,标准Android service会很好。 它将继续在后台运行,直到它的工作完成或直到你要求它停止。 有一个topic on the android dev site详细解释服务。
答案 2 :(得分:2)
你应该选择用于后台操作的android 服务。在服务中你可以使用TimerTask,它将每隔x秒检查一次队列,当队列中出现任何项目时,它将拉出项目并将其上传到服务器。 这是Android服务的链接.. http://developer.android.com/reference/android/app/Service.html
来自队列的链接。http://developer.android.com/reference/java/util/Queue.html