金立手机 自带的主题公园世界下载 以前下载主题都可以下载 可是现在一下载就自动暂停掉 我按继续,然后他还是

香港(中国):+852-
境外:+86-21-
&&&最佳旅游城市最佳旅游景区&热门城市&东莞金立手机(东莞客户服务中心)
南城区元美鸿福路76号南城商务大厦 - 距离119.9米
鸿福西路87号 - 距离149米
南城区南城街道鸿福西路希尔顿广场2栋418室 - 距离211.3米
鸿福西路曼哈顿时代83号F4层 - 距离216.5米
鸿福路83号综艺广场裙楼海雅百货5楼 - 距离219.9米
鸿福路82号腾龙商务中心A区1901-04号 - 距离275.7米
鸿福西路烤园旁 - 距离5.8米
鸿福西路中段北侧阳光大厦05号商铺 - 距离13.3米
鸿福西路154号 - 距离29.4米
鸿福西路中段北侧阳光大厦04号 - 距离35.8米
南城区 鸿福西路阳光大厦9号铺(家乐福斜对面) - 距离40.3米
鸿福西路阳光大厦22号商铺(工商银行隔壁) - 距离39.5米
鸿福路90号 - 距离7.2米
鸿福路88号 - 距离92.1米
元美路6号 - 距离105.3米
鸿福路与元美路交汇处,南城沃尔玛旁 - 距离146.7米
南城区鸿福西路家乐福二楼 - 距离163.6米
南鸿福西路80号希尔顿广场F2(鸿福路口) - 距离165.2米
特价折扣酒店
入住最多酒店
高端豪华酒店
最佳口碑酒店
距离16公里
距离22公里
大朗镇金丽大道52号 - 距离22公里
距离15公里
八达路207号 - 距离2公里
海运横路 - 距离24公里
长堤路 - 距离24公里
滨江路 - 距离16公里
长堤路 - 距离23公里
新沙港 - 距离20公里
常平镇火车站 - 距离26公里
长安镇省道358沙头路段 - 距离24公里
长安镇霄边107国道下洋路3号(长安镇107国道与下洋路交界) - 距离25公里
距离10公里
簪花路 - 距离2公里
距离12公里
竂步镇莞樟路塘唇段55号 - 距离12公里
南城区莞太大道石鼓路段 - 距离5公里
虎门镇大宁村麒麟路 - 距离22公里
寮步镇东莞国际汽车城内 - 距离11公里
距离10公里
距离10公里
距离12公里
距离33公里
距离25公里
距离22公里
距离53公里
距离27公里
距离44公里
距离46公里
亨美美丰路19号 - 距离1公里
距离15公里
距离43公里
距离55公里
距离22公里
距离12公里
距离12公里
距离31公里
距离12公里
鸿福路108号 - 距离1公里
距离29公里
距离16公里
距离24公里
距离15公里
距离23公里
距离37公里
距离18公里
距离16公里
距离12公里
距离25公里
携程攻略每日推荐
正在发生的旅游热点
其他东莞地标服务
东莞旅游攻略指南? 携程攻略社区! 靠谱的旅游攻略平台,最佳的东莞自助游、自由行、自驾游、跟团旅线路,海量东莞旅游景点图片、游记、交通、美食、购物、住宿、娱乐、行程、指南等旅游攻略信息,了解更多东莞旅游信息就来携程旅游攻略。 广东旅游攻略导航:东莞移动端旅游快速入口:
东莞旅游推荐移动入口:
热门旅游目的地推荐移动入口:热门旅游攻略移动入口: 移动端入口:
 |  |  |  |  |  |  |  |  |  
|  |  |  |  |  | 
 |  |  |  |  |  |  |  |  | , . All rights reserved. | Android网络编程之——文件断点下载(暂停/继续/重新下载)
开头还是不说废话了直接进入主题吧!
一:关于断点下载所涉及到的知识点
1.对SQLite的增删改查(主要用来保存当前任务的一些信息)
2.HttpURLConnection的请求配置
HttpURLConnection connection = null;
connection.setRequestProperty();
3.RandomAccessFile 对文件进行写入
RandomAccessFile rwd = null;
rwd.seek();
4.基本的I/O流操作,以及逻辑处理
二:第一步我们先来创建一张表用来保存我们的下载信息
public class DbHelper extends SQLiteOpenHelper {
public static String TABLE = "file";
public DbHelper(Context context) {
super(context, "download.db", null, 1);
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table file(fileName varchar,url varchar,length integer,finished integer)");
三:第二步同时既然是对数据库的操作,那我们在DbHelper.class中来写好几个公用方法
* 插入一条下载信息
public void insertData(SQLiteDatabase db, FileInfo info) {
ContentValues values = new ContentValues();
values.put("fileName", info.getFileName());
values.put("url", info.getUrl());
values.put("length", info.getLength());
values.put("finished", info.getFinished());
db.insert(TABLE, null, values);
* 是否已经插入这条数据
public boolean isExist(SQLiteDatabase db, FileInfo info) {
Cursor cursor = db.query(TABLE, null, "url = ?", new String[]{info.getUrl()}, null, null, null, null);
boolean exist = cursor.moveToNext();
cursor.close();
* 查询已经存在的一条信息
public FileInfo queryData(SQLiteDatabase db, String url) {
Cursor cursor = db.query(TABLE, null, "url = ?", new String[]{url}, null, null, null, null);
FileInfo info = new FileInfo();
if (cursor != null) {
while (cursor.moveToNext()) {
String fileName = cursor.getString(cursor.getColumnIndex("fileName"));
int length = cursor.getInt(cursor.getColumnIndex("length"));
int finished = cursor.getInt(cursor.getColumnIndex("finished"));
info.setStop(false);
info.setFileName(fileName);
info.setUrl(url);
info.setLength(length);
info.setFinished(finished);
cursor.close();
* 恢复一条下载信息
public void resetData(SQLiteDatabase db, String url) {
ContentValues values = new ContentValues();
values.put("finished", 0);
values.put("length", 0);
db.update(TABLE, values, "url = ?", new String[]{url});
3.从上面方法中可以看出来还有一个FileInfo对象,没错这是自己创建的一个下载任务实体类一起来看看吧
public class FileInfo {
private String fileN
private int
private int
private boolean isStop = false;
private boolean isDownLoading = false;
四:第三步我们创建一个类DownLoaderManger来管理我们的下载任务包括、添加下载任务、开始下载、暂停下载、重新下载
public class DownLoaderManger {
public static String FILE_PATH = Environment.getExternalStorageDirectory() + "/azhong";
private DbH
private SQLiteD
private OnProgressL
private Map&String, FileInfo& map = new HashMap&&();
private static DownLoaderM
private DownLoaderManger(DbHelper helper, OnProgressListener listener) {
this.helper =
this.listener =
db = helper.getReadableDatabase();
* 单例模式
数据库帮助类
* listener 下载进度回调接口
public static synchronized DownLoaderManger getInstance(DbHelper helper, OnProgressListener listener) {
if (manger == null) {
synchronized (DownLoaderManger.class) {
if (manger == null) {
manger = new DownLoaderManger(helper, listener);
* 开始下载任务
public void start(String url) {
db = helper.getReadableDatabase();
FileInfo info = helper.queryData(db, url);
map.put(url, info);
new DownLoadTask(map.get(url), helper, listener).start();
* 停止下载任务
public void stop(String url) {
map.get(url).setStop(true);
* 重新下载任务
public void restart(String url) {
stop(url);
File file = new File(FILE_PATH, map.get(url).getFileName());
if (file.exists()) {
file.delete();
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
db = helper.getWritableDatabase();
helper.resetData(db, url);
start(url);
* 获取当前任务状态
public boolean getCurrentState(String url) {
return map.get(url).isDownLoading();
* 添加下载任务
* info 下载文件信息
public void addTask(FileInfo info) {
if (!helper.isExist(db, info)) {
db = helper.getWritableDatabase();
helper.insertData(db, info);
map.put(info.getUrl(), info);
db = helper.getReadableDatabase();
FileInfo o = helper.queryData(db, info.getUrl());
if (!map.containsKey(info.getUrl())) {
map.put(info.getUrl(), o);
五:上面代码中OnProgressListener接口,当然还有一个最最重要的DownLoadTask了这里面就是实现了如何断点下载的,下面来一起看下里面的实现逻辑吧。。。
public interface OnProgressListener {
void updateProgress(int max, int progress);
六:重点–下载线程
* 下载文件线程
* 从服务器获取需要下载的文件大小
public class DownLoadTask extends Thread {
private FileI
private SQLiteD
private DbH
private int finished = 0;
private OnProgressL
public DownLoadTask(FileInfo info, DbHelper helper, OnProgressListener listener) {
this.info =
this.helper =
this.db = helper.getReadableDatabase();
this.listener =
info.setDownLoading(true);
public void run() {
getLength();
HttpURLConnection connection = null;
RandomAccessFile rwd = null;
URL url = new URL(info.getUrl());
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(3000);
int start = info.getFinished();
connection.setRequestProperty("Range", "bytes=" + start + "-" + info.getLength());
File file = new File(DownLoaderManger.FILE_PATH, info.getFileName());
rwd = new RandomAccessFile(file, "rwd");
rwd.seek(start);
finished += info.getFinished();
if (connection.getResponseCode() == 206) {
InputStream is = connection.getInputStream();
byte[] buffer = new byte[1024 * 4];
while ((len = is.read(buffer)) != -1) {
rwd.write(buffer, 0, len);
finished +=
info.setFinished(finished);
Message msg = new Message();
msg.what = 0x123;
msg.arg1 = info.getLength();
msg.arg2 = info.getFinished();
handler.sendMessage(msg);
if (info.isStop()) {
info.setDownLoading(false);
helper.updateData(db, info);
db.close();
info.setDownLoading(false);
helper.updateData(db, info);
db.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
if (rwd != null) {
rwd.close();
} catch (IOException e) {
e.printStackTrace();
* 首先开启一个线程去获取要下载文件的大小(长度)
private void getLength() {
HttpURLConnection connection = null;
URL url = new URL(info.getUrl());
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(3000);
int length = -1;
if (connection.getResponseCode() == 200) {
length = connection.getContentLength();
if (length &= 0) {
File dir = new File(DownLoaderManger.FILE_PATH);
if (!dir.exists()) {
dir.mkdirs();
info.setLength(length);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
* 更新进度
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 0x123:
if (listener != null) {
listener.updateProgress(msg.arg1, msg.arg2);
七:下载流程—&首先获取要下载文件的总长度—&然后指定从上次结束的位置开始下载文件。客官阅读需仔细哦,精华都在注释里面哦!个人认为重点部分如下两个:
connection.setRequestProperty("Range", "bytes=" + start + "-" + info.getLength());
RandomAccessFile rwd = new RandomAccessFile(file, "rwd");
rwd.seek(start);
八:上面做了一系列准备工作之后,就可以正式开始下载了让我们一起来瞧瞧
1.给主布局界面放两个按钮,来开始/暂停/重新下载
&?xml version="1.0" encoding="utf-8"?&
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.azhong.downloader.MainActivity"&
android:id="@+id/pb"
android:layout_width="match_parent"
android:layout_height="wrap_content" /&
android:id="@+id/start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="开始下载" /&
android:id="@+id/restart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="重新下载" /&
3.记得在清单文件中加入 网络访问和内存读写权限哦!
4.既然我们封装了那么久,那肯定用起来就会很简单了
public class MainActivity extends AppCompatActivity implements OnProgressListener {
private NumberProgressB
private DownLoaderManger downLoader = null;
private FileI
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pb = (NumberProgressBar) findViewById(R.id.pb);
final Button start = (Button) findViewById(R.id.start);
final Button restart = (Button) findViewById(R.id.restart);
final DbHelper helper = new DbHelper(this);
downLoader = DownLoaderManger.getInstance(helper, this);
info = new FileInfo("Kuaiya482.apk", "http://downloadz.dewmobile.net/Official/Kuaiya482.apk");
downLoader.addTask(info);
start.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (downLoader.getCurrentState(info.getUrl())) {
downLoader.stop(info.getUrl());
start.setText("开始下载");
downLoader.start(info.getUrl());
start.setText("暂停下载");
restart.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
downLoader.restart(info.getUrl());
start.setText("暂停下载");
public void updateProgress(final int max, final int progress) {
pb.setMax(max);
pb.setProgress(progress);
九:断点下载的知识点在文章开头已经给出,剩下的都是加入了自己的逻辑处理和代码封装。感兴趣的伙伴们一定要自己动手尝试着去写,不然你以为你看了一遍会了其实到后来就完全不会了……
扫码向博主提问
非学,无以致疑;非问,无以广识
擅长领域:
ReactNativ
微信小程序
没有更多推荐了,请 登录 后使用快捷导航没有帐号?
1跳转至页
版本amigo2.0
在线4 小时
主题帖子积分
LV3 一见如故, 积分 194, 距离下一级还需 806 积分
在线4 小时
签到15 次心情哥签的不 ...
最近发的手机自带的主题公园里的壁纸和主题下载时显示创建下载目录失败&&这是什么问题(O_O)?
来自金立F103
颜控心选择
美不平凡·始终如一
机型M5 Plus
版本amigo3.0
在线1214 小时
星座天秤座
主题帖子积分
软件商店超粉团
LV6 心有灵犀, 积分 14319, 距离下一级还需 10681 积分
机型M5 Plus
在线1214 小时
签到949 次心情笑笑十年 ...
清除数据之后再下载
amigo OS,够朋友的手机操作系统。
版本amigo2.0
在线0 小时
主题帖子积分
LV1 似曾相识, 积分 1, 距离下一级还需 9 积分
在线0 小时
为什么充不了A币
来自金立F103
颜控心选择
美不平凡·始终如一
版本amigo2.0
在线0 小时
主题帖子积分
LV1 似曾相识, 积分 8, 距离下一级还需 2 积分
在线0 小时
签到1 次心情花开若相 ...
来自金立F103
颜控心选择
美不平凡·始终如一
机型其它机型
版本amigo2.0
在线26 小时
星座天蝎座
主题帖子积分
LV4 亲密无间, 积分 1129, 距离下一级还需 2871 积分
机型其它机型
在线26 小时
签到189 次心情花开若相 ...
来自amigo社区手机版
版本amigo2.0
在线369 小时
主题帖子积分
LV8 情同手足, 积分 50327, 距离下一级还需 19673 积分
在线369 小时
签到734 次心情哎呀妈呀 ...
Screenshot_-19-30-10.png (0 Bytes, 下载次数: 10)
20:21 上传
来自金立F103
颜控心选择
美不平凡·始终如一
版本amigo2.0
在线1 小时
主题帖子积分
LV5 惺惺相惜, 积分 4530, 距离下一级还需 5470 积分
在线1 小时
签到27 次心情今日求财 ...
来自amigo社区手机版
版本amigo2.0
在线1 小时
主题帖子积分
LV5 惺惺相惜, 积分 4530, 距离下一级还需 5470 积分
在线1 小时
签到27 次心情今日求财 ...
那怎么办?
来自amigo社区手机版
版本amigo2.0
在线1 小时
主题帖子积分
LV5 惺惺相惜, 积分 4530, 距离下一级还需 5470 积分
在线1 小时
签到27 次心情今日求财 ...
来自amigo社区手机版
版本amigo2.0
在线0 小时
主题帖子积分
LV1 似曾相识, 积分 1, 距离下一级还需 9 积分
在线0 小时
我的是下载不了,下下停了,要点继续,又停了,怎么办,求解答
来自amigo社区手机版
1跳转至页
三级签到勋章
amigoOS社区三级签到勋章,由二级签到勋章进化而来,签到经验值≥150
你没有看错,这是一位签到之王,毅力的化身、无所不成!需要签到经验10000以上
一级签到勋章
amigoOS社区一级签到勋章,签到一次即可获得
五级签到勋章
amigoOS社区五级签到勋章,由四级签到勋章进化而来,签到经验值≥1500
六级签到勋章
amigoOS社区六级签到勋章,由五级签到勋章进化而来,签到经验值≥3000
友情链接:金立手机的主题公园不能下载主题了怎么回事?_百度知道
金立手机的主题公园不能下载主题了怎么回事?
原因:1、当前手机版本的原因;2、手机系统内部文件损坏或丢失;3、当前网络信号不佳;4、第三方软件不兼容。解决办法:1、建议检测一下手机,更新手机版本;2、换个时间段或者换个网络/环境重新下载;3、关机重启再观察一下;4、备份重要资料恢复出厂设置;5、以上方法没有解决,建议拿着手机去当地售后服务中心处理。
采纳率:100%
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。我的手机是金立F103,自带的主题公园里面的主题下载不了,也不是网络_百度知道
我的手机是金立F103,自带的主题公园里面的主题下载不了,也不是网络
我的手机是金立F103,自带的主题公园里面的主题下载不了,也不是网络问题,怎么办
我有更好的答案
1、确定网络是否稳定,可否正常浏览网页等操作;网络不佳或者无网络的情况建议用户连接稳定网络后进行下载;2、尝试将手机关机重启一下;3、尝试将“主题公园”清除数据,进入设置→高级设置→应用管理→全部→“主题公园”→“清除数据”即可;4、将重要资料备份后恢复出厂设置试一下的哈
采纳率:95%
来自团队:
清理主题公园的数据:设置→高级设置→应用管理→全部→主题公园→清除数据/清除缓存即可;检测手机“系统更新”及主题公园“检查更新”并在线更新至最新版本;以上操作后无法解决,需备份资料选择恢复出厂设置
更换一个网络试一下的哈!
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 主题公园世界2下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信