0

私はxamarinとandroidの両方にとって本当に新しいので、この問題に近づく方法を理解することに問題があります。接続性に応じてバックグラウンドでデータをアップロード

私の問題は次のとおりです。写真の写真を撮って残りのサーバーにアップロードするアン​​ドロイドアプリを開発する必要があります。混乱する部分は、ユーザーが本当に接続が悪いということです。インターネットが常時接続されていることを確認し、インターネットがあるときに写真をアップロードする必要があります。このチェックは、バックグラウンドで実行する必要があるため、ユーザーはラグに気付かないでしょう。

ユーザーが「保存」をクリックすると、写真とメタデータがローカルデータベースまたはファイル(jsonまたはsqlite)に保存され、インターネットがあるときアップロードされます。

私は多くの異なるアプローチを試しましたが、アンドロイドのスレッドとサービスの仕組みが理解できないために失敗しました。

私が調査し、すべての可能性をテストするのに時間がないので、私はあなたに頼んでいます:どうすればいいですか?

ご理解いただきありがとうございます。

答えて

0

インターネットチェックのためのヌゲットプラグインXam.Plugin.Connectivityがあります。このプラグインのイベントでコードを管理できます。 バックグラウンドでは、バックグラウンドスレッドを1つ作成し、ConnectivityChangedイベントからバックグラウンドスレッドを呼び出す必要があります。

CrossConnectivity.Current.ConnectivityChanged += (object sender, Plugin.Connectivity.Abstractions.ConnectivityChangedEventArgs e) => 
    { 
      if(e.IsConnected){ 
      //your code here for fetching data when internet connected. 
      //Create task for background process 
      Task.Run(() => 
      { 
       //your code for background 

      }).ConfigureAwait(false); 
      } 
    } 
+0

はい、接続していても問題ありませんか?アンドロイド終了スレッドはどうですか? これはサービスで行う必要があると思います。 – Mightee

+0

これは、インターネット状態がオンラインからオフラインに、オフラインでオンラインに変更された場合にのみ実行されます。あなたのアプリを起動すると、これもあなたのインターネット状態をチェックします。したがって、最初の時間のコードを書く必要はありません。 –

関連する問題