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