展会信息港展会大全

怎样实现Android应用程序自动更新
来源:互联网   发布日期:2015-09-28 16:19:21   浏览:2287次  

导读:一个良好的Android程序都应该有版本的更新,那怎样实现更新呢?今天就为大家介绍应用自动更新的全过程。程序自动更新的流程大致如下:程序启动 - 适时后台检查更新 - 链接远程服务器 - 获取新版本信息-......

一个良好的Android程序都应该有版本的更新,那怎样实现更新呢?今天就为大家介绍应用自动更新的全过程。

程序自动更新的流程大致如下:

程序启动 -> 适时后台检查更新 -> 链接远程服务器 -> 获取新版本信息

-> 比对当前版本 -> if(有更新) -> 显示更新提示对话框并显示更新的内容 -> 交与用户选择

下面是我做的一个简单demo,大家可以参考一下:

布局比较简单就不上代码了。

主程序代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

package com.cloay.update;

import java.io.IOException;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.pm.PackageManager.NameNotFoundException;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

/**

* 程序<a title="自动更新" href="http://www.android-study.com/wangluobiancheng/521.html">自动更新</a> UpdateTestActivity.java

*

* @author Cloay 2011-11-23

*/

public class UpdateTestActivity extends Activity {

private Button button;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

button = (Button) findViewById(R.id.check);

button.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

try {

checkVersion();

} catch (NameNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

}

/**

* 检查是否需要更新程序

*

* @throws NameNotFoundException

*/

private void checkVersion() throws NameNotFoundException {

UpdateInfo updateInfo = new UpdateInfo();

URL url;

try {

url = new URL("http://localhost:8080/update.xml");

HttpURLConnection connection = (HttpURLConnection) url

.openConnection();

// connection.setConnectTimeout(5000);

updateInfo = ParseXmlUtils.parseXml(connection.getInputStream());

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

if (updateInfo.getVersion().equals(VersionUtil.getVersionName(this))) {

Toast.makeText(this, "版本相同,不需要升级!", Toast.LENGTH_SHORT).show();

} else {

showUpdateDialog(updateInfo);

}

}

private void showUpdateDialog(UpdateInfo updateInfo) {

AlertDialog alertDialog = new AlertDialog.Builder(this)

.setTitle("提示检测到新版本,确定升级吗?").setIcon(R.drawable.ask)

.setMessage(updateInfo.getDescription())

.setPositiveButton("确定", newDialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

dialog.cancel();

}

})

.setNegativeButton("取消", newDialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

dialog.cancel();

}

}).create();

alertDialog.show();

}

}

这里说明一下:远程服务器放置一个xml文件,用来说明当前新版本的信息。包括版本号,新版本功能说明,新版下载链接。

上一页 1 2 下一页

赞助本站

人工智能实验室

相关热词: 程序 自动更新

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港