Java 连接良好时图像上传,Android(后台处理)

Java 连接良好时图像上传,Android(后台处理),java,android,android-fragments,upload,android-workmanager,Java,Android,Android Fragments,Upload,Android Workmanager,当连接良好时,如何在后台处理android上的上传图像?我有模式,当连接良好时,它可以上传,当连接不良时,它将存储在本地,当连接良好时,它将很快自动重新上传。试试这个它对我有效: import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.

当连接良好时,如何在后台处理android上的上传图像?我有模式,当连接良好时,它可以上传,当连接不良时,它将存储在本地,当连接良好时,它将很快自动重新上传。

试试这个它对我有效:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.widget.Toast;

 public class CheckConnectivity extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent arg1) {

boolean isConnected = arg1.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, 
 false);
if(isConnected){
    Toast.makeText(context, "Internet Connection Lost", Toast.LENGTH_LONG).show();
}
else{
    Toast.makeText(context, "Internet Connected", Toast.LENGTH_LONG).show();
  }
 }
}
安卓清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.connect.broadcast"
 android:versionCode="1"
 android:versionName="1.0" >

 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8"/>

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.INTERNET" />

  <application
   android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
     <receiver android:exported="false"
      android:name=".CheckConnectivity" >
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
 </receiver>


试试这个,它对我有用:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.widget.Toast;

 public class CheckConnectivity extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent arg1) {

boolean isConnected = arg1.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, 
 false);
if(isConnected){
    Toast.makeText(context, "Internet Connection Lost", Toast.LENGTH_LONG).show();
}
else{
    Toast.makeText(context, "Internet Connected", Toast.LENGTH_LONG).show();
  }
 }
}
安卓清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.connect.broadcast"
 android:versionCode="1"
 android:versionName="1.0" >

 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8"/>

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.INTERNET" />

  <application
   android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
     <receiver android:exported="false"
      android:name=".CheckConnectivity" >
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
 </receiver>


您可以使用

您应该开始在数据存储中记录要发送到后端的数据,然后将连接可用时将要执行的工作请求排队。 您的工作人员“只是”需要将数据发送到后端

要让工人排队,可以使用类似()的方法:

类似的功能还可以处理传输过程中的重试和连接丢失。当连接恢复时,工作进程将被停止并重新安排

在不知道需要同步哪些数据以及正在使用哪些库的情况下,很难进行更详细的讨论。在中有一个关于如何使用
coroutineWorkers
的示例

您可以参考以了解如何使用它,还有一个简单的代码实验室演示如何使用WorkManager。codelab在和中提供

(Android开发者峰会的事件应用程序)使用类似的设置来根据请求下载更新,但更复杂的是,它使用Dagger注入对用例的引用来刷新数据


您可以使用一个

您应该开始在数据存储中记录要发送到后端的数据,然后将连接可用时将要执行的工作请求排队。 您的工作人员“只是”需要将数据发送到后端

要让工人排队,可以使用类似()的方法:

类似的功能还可以处理传输过程中的重试和连接丢失。当连接恢复时,工作进程将被停止并重新安排

在不知道需要同步哪些数据以及正在使用哪些库的情况下,很难进行更详细的讨论。在中有一个关于如何使用
coroutineWorkers
的示例

您可以参考以了解如何使用它,还有一个简单的代码实验室演示如何使用WorkManager。codelab在和中提供

(Android开发者峰会的事件应用程序)使用类似的设置来根据请求下载更新,但更复杂的是,它使用Dagger注入对用例的引用来刷新数据


你能举个例子吗?对不起,我是新手。但我对你的答案有点了解。我需要如何在活动中应用这个。以及如何调用。我使用javaso。在val Constraint、syndataworker和dowork()方法上的操作?然后我就可以创建刷新主数据工作的流程了?请看[Java codelab for WorkManager][1]。它应该让你对如何使用图书馆有基本的了解。这显示了如何使用ViewModels以安全、生命周期感知的方式控制和观察活动中的
工作请求。[1] :你能举个例子吗?很抱歉,我是新手..但我对你的答案有点了解。我需要如何将此应用于活动..以及如何调用..我使用javaso。在val Constraint、syndataworker和dowork()方法上的操作?然后我就可以创建刷新主数据工作的流程了?请看[Java codelab for WorkManager][1]。它应该让你对如何使用图书馆有基本的了解。这显示了如何使用ViewModels以安全、生命周期感知的方式控制和观察活动中的
工作请求。[1] :是自动检查吗?我想不是自动检查。因为它会在后台运行。是自动检查吗?我想不是自动检查。因为它会在后台运行。