使用android中的服务将文件上传到服务器

时间:2013-01-28 11:52:32

标签: android

我有一个文件夹,其中我存储图像....所以我想要做的是将此图像上传到服务器,一旦上传完成,我想删除此图像..这个上传和删除应该发生在后台...所以我创建了一个工作正常的服务。我想要的是每当一个新文件进入这个文件夹时它应该自动上传..服务应该自动启动...有没有办法做到这一点。 ??

public class MyServices extends Service {

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
        Toast.makeText(getApplicationContext(), "Service Started",
                Toast.LENGTH_LONG).show();

        sendfile();
        return super.onStartCommand(intent, flags, startId);
    }
    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
        Toast.makeText(getApplicationContext(), "Service Stopped",
                Toast.LENGTH_LONG).show();
        super.onDestroy();
    }
}

sendfile()扫描文件夹并发送图像....所以我必须继续无限地调用这个方法或者还有其他方法吗?

3 个答案:

答案 0 :(得分:0)

您可以使用AlarmManager,有时会运行您的服务并检查该文件夹。 (但要注意电池使用app =))。

答案 1 :(得分:0)

以下是一些选项:

  1. 您可以使用FileObserver来查看目录以进行更改。
  2. 如果您的应用正在创建图片,则可以在每次添加新图片时调用startService。
  3. 你可以听ACTION_NEW_PICTURE知道何时添加新图片(假设应用添加图片的行为与相机应用相似)。

答案 2 :(得分:0)

..因此,我要做的就是将此图像上传到服务器,一旦上传完成,我想删除此图像。.此上传和删除应在后台进行...

这个Github库正是这样做的- https://github.com/gotev/android-upload-service 2.3万颗星2020年4月

enter image description here

” -带有进度指示通知的后台轻松上传文件(即开即用的Multipart / Binary / FTP)

通过FTP,HTTP multipart / form-data或二进制请求将文件上传到服务器

-即使设备处于闲置状态(打mode模式),也可以在后台处理多个并发上传

-自动重试失败的上载,并具有可配置的指数补偿 上传成功后可以自动删除上传的文件

由该库支持的应用和库-

-JIRA Cloud

-Quora

...