非常に実用的な小機能Androidアプリケーションのバージョンの更新例


各アプリケーションは一つの機能を備えています。つまりバージョンの更新です。面接の前に、面接官からアプリケーションの更新の具体的な操作を紹介されたことを覚えています。私はその時この機能をしたことがありますので、答えはまだ流暢です。今はこれを皆さんに分かち合って、共に進歩する必要があります。
私はそう言いました。
まず、私たちはユーザー登録後、トップページでバージョン情報を確認する操作を行うべきです。具体的には、ローカルのバージョン番号を取得した後、サーバーに提出して判断します。そして、バックグラウンドで最新バージョンかどうか教えてください。具体的には、入出力ストリームを使ってファイルを保存したり、読み取りしたりすることができます。ダウンロードしやすいように、第三者のフレームを使ってもいいです。xutilsは、このフレームがあります。ブレークポイントの継続などの機能をよりよく実現できます。最後に、ファイルをダウンロードして、システムのインストール画面を呼び出して、インストールします。これから更新操作は全部完了します。もちろん、重要なところがあります。権限の追加を忘れないでください。
       
   
普通、このように答えたら、ほぼ効果があります。
具体的なコードの実現を見てみます。ここでは「大衆コメント」のアプリのダウンロードを例にしています。
activityの操作を見てください。

public class MainActivity extends Activity {
  private ProgressDialog dialog;


  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
  }
  private void initView() {
    AlertDialog.Builder dialogTips= new AlertDialog.Builder(this);
    dialogTips.setTitle("  ");
    dialogTips.setMessage("        ,    ?");
    dialogTips.setNegativeButton("  ", null);
    dialogTips.setPositiveButton("  ", new OnClickListener() {

      @Override
      public void onClick(DialogInterface arg0, int arg1) {
        startDownload();
      }
    });
    dialogTips.show();

    dialog=new ProgressDialog(this);
    dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    dialog.setMessage("    ");
    dialog.setMax(100);
  }
  private void startDownload(){
    //             
    File path = new File(Environment.getExternalStorageDirectory(),
        "    "+ ".apk");
    httpDownLoad(path.getPath(), "http://www.wandoujia.com/apps/com.dianping.v1/download");

  }

  /**
   *      
   * @param path        
   * @param url      
   */
  private void httpDownLoad(String path, String url) {
    HttpUtils http = new HttpUtils();
    http.download(url, path, true, true, new RequestCallBack<File>() {

      @Override
      public void onStart() {
        super.onStart();
        dialog.show();
      }

      @Override
      public void onLoading(long total, long current, boolean isUploading) {
        int index = (int) (current * 100 / total);
        dialog.setProgress(index);
      }


      @Override
      public void onSuccess(ResponseInfo<File> responseInfo) {
        //       ,     android  apk             
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(
            Uri.fromFile(new File(responseInfo.result.getPath())),
            "application/vnd.android.package-archive");
        startActivity(intent);
        dialog.dismiss();
        MainActivity.this.finish();
      }

      @Override
      public void onFailure(
          com.lidroid.xutils.exception.HttpException arg0, String arg1) {
        File path = new File(Environment.getExternalStorageDirectory(),
            "    " + ".apk");
        Toast.makeText(MainActivity.this, "    "+arg1, 0).show();
        dialog.dismiss();
        path.delete();
      }
    });
  }

}

ここの注釈もかなりはっきりしていますので、詳しくは説明しませんが、注意すべき点があります。ここはxutilsのフレームを使っていますので、このフレームがないと使えません。
最後にソースコードを添付します。以上が本文の全部です。みなさんの勉強に役に立つように、私たちを応援してください。