当前位置:  编程技术>移动开发
本页文章导读:
    ▪HTC Desire HD手机recovery应用教程        HTC Desire HD手机recovery使用教程 很多网友ROOT、Recovery手机后,并不会真正实用手机的Recovery功能,面对全E文的操作界面,如何使用Recovery来备份手机数据、分区SD卡并刷入新的ROM,是大家最头.........
    ▪ App自动更新之自定义进度视图跟内部存储(转)        App自动更新之自定义进度视图和内部存储(转) 原文地址: http://www.cnblogs.com/qianxudetianxia/archive/2011/04/26/2010930.html   友好的视觉感知和稳定的不出错表现,来自于我们追求美感和考虑的全面.........
    ▪ ListActivity刷新数据后界面没法更新的解决       ListActivity刷新数据后界面无法更新的解决         之前遇到ListActivity数据更新后界面却没更新的问题。当时是直接重新跳转到这个Activity解决的,因为之前的操作   大多是跳转到一个新的.........

[1]HTC Desire HD手机recovery应用教程
    来源: 互联网  发布时间: 2014-02-18
HTC Desire HD手机recovery使用教程

很多网友ROOT、Recovery手机后,并不会真正实用手机的Recovery功能,面对全E文的操作界面,如何使用Recovery来备份手机数据、分区SD卡并刷入新的ROM,是大家最头疼的地方。现在,我把Recovery界面的各项功能,做简单介绍:

一、进入Recovery界面

完全关机后,同时按住手机音量下键 电源键可进入Recovery界面。进入后,使用电源上下键进行选项,使用电源键进行确认。

二、Recovery界面功能介绍

1、Reboot system now——重启

   2、Backup/Restore——备份和还原,可以完整的将系统备份至SD卡中,适合经常刷机的朋友。备份还原中还包含以下选项: 

Nand backup——Nand 备份

   Nand ext backup——Nand 备份(系统和ext 分区一同备份) 

Nand restore——还原(就是还原3-1、3-2 的最后一次备份)

   BART backup——BART 备份 (包括系统和ext 分区)

   BART restore——还原最后一次的BART备份

   3、Flash zip from sdcard——从sd卡根目录的.zip ROM 刷机包刷机,这项算是常见的了,现在的新版本的recovery,一般都不需要把刷机包重命名为UPDATE.ZIP了,可以直接刷机。

   4、Wipe——清除数据,这一项一般是在刷机前需要做的,清空个人数据,一般这个大项还包括以下的小项:

Wipe data/factory reset——清除内存数据和缓存数据

   Wipe Dalvik-cache——清除缓存数据 ext 分区内数据

   Wipe SD:ext partition——只清除ext 分区内数据

   Wipe battery stats——清除电池数据

   Wipe rotate settings——清除传感器内设置的数据

   5、Partition sdcard——分区sd 卡,这个选项主要是用来做APP 2 SD的,需要将卡分为LINUX下的格式ext,一般有以下选项:

Partition SD——自动为sd 卡分区

   Repair SD:ext——修复ext 分区

   SD:ext2 to ext3——将ext2 分区转换为ext3 分区(推荐)

   6-4、SD:ext3 to ext4——将ext3 分区转换为ext4 分区(C4 卡不推荐,C6 卡推荐)


    
[2] App自动更新之自定义进度视图跟内部存储(转)
    来源: 互联网  发布时间: 2014-02-18
App自动更新之自定义进度视图和内部存储(转)

原文地址: http://www.cnblogs.com/qianxudetianxia/archive/2011/04/26/2010930.html

 

友好的视觉感知和稳定的不出错表现,来自于我们追求美感和考虑的全面性,博客园从技术的角度,一直我都很欣赏。
这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。 

这一篇是对上一篇《Android学习系列(2)--App自动更新之通知栏下载》的补充,因此只是以点为要,点到为止。
1.内部存储
    出于考虑到用户可能禁掉了SDCard或者电脑暂时插在电脑上且为磁盘连接状态等等,对于这么个情况下,我们应该也要保证我们的程序也是能正常的运行。所以我们要考虑内部存储。
    我暂时把内部存储定在/data/data/xxxxxappxxxx/files目录,核心代码如下:

//创建目录和文件
if(android.os.Environment.MEDIA_MOUNTED.equals(android.os.Environment.getExternalStorageState())){
    updateDir = new File(Environment.getExternalStorageDirectory(),Global.downloadDir);
}else{
    //files目录
    updateDir = getFilesDir();
}
updateFile = new File(updateDir.getPath(),getResources().getString(titleId)+".apk");

2.内部存储的权限
  一起都运行的正常,但是当我们帮下下来的apk文件执行运行操作的时候,确提示如下,
 
    "解析包错误"??其实你下载的文件并不一定就是坏的或者错误的,也可能是android系统的权限在作怪。在你执行之前,加上如下核心代码:

String cmd = "chmod +x " +updateFile.getPath();
try {
    Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
    e.printStackTrace();
}

3.通知栏显示进度条组件的一个bug。
    在通知栏设置进度条的可见性,会无缘无故的崩溃。

//下面一句是没有语法错误的,但是会导致程序出错
//为了解决这个问题,后面我们会再progressView外面包裹一层LinearLayout来控制可见性
updateNotification.contentView.setViewVisibility(progressViewID, View.GONE);

4.自定义进度条显示视图。
    布局文件updata_nitification.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:layout_weight="2"
    android:paddingLeft="5dip">
    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="left|center_vertical"
        android:orientation="horizontal"
        android:layout_weight="1">  
        <ImageView android:src="/blog_article/@drawable/icon/index.html"
            android:layout_width="24dip"
            android:layout_height="fill_parent"
            android:scaleType="fitCenter"/>
        <TextView android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/app_name"
            android:textColor="#000000"
            android:paddingLeft="5dip"
            android:textSize="16dip"/>
    </LinearLayout>
    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="left"
        android:orientation="horizontal"
        android:layout_weight="1">  
        <TextView android:id="@+id/update_notification_progresstext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#8F8F8F"
            android:textSize="14dip"/>
            <LinearLayout android:id="@+id/update_notification_progressblock"
            android:layout_width="fill_parent"
	        android:layout_height="wrap_content"
	        android:orientation="horizontal"> 
	        <ProgressBar android:id="@+id/update_notification_progressbar" 
	            android:layout_width="fill_parent"
	            android:layout_height="wrap_content" 
	            />
	        </LinearLayout>
    </LinearLayout>
</LinearLayout>

开始下载:

updateNotification.contentIntent = updatePendingIntent;
updateNotification.contentView.setProgressBar(com.cnblogs.tianxia.subway.R.id.update_notification_progressbar, 100, 0, false);
updateNotification.contentView.setTextViewText(com.cnblogs.tianxia.subway.R.id.update_notification_progresstext, "0%");

正在下载,显示下载进度条:

updateNotification.contentView.setProgressBar(com.cnblogs.tianxia.subway.R.id.update_notification_progressbar, 100, (int)(totalSize*100/updateTotalSize), false);
updateNotification.contentView.setTextViewText(com.cnblogs.tianxia.subway.R.id.update_notification_progresstext, (int)(totalSize*100/updateTotalSize)+"%");
updateNotificationManager.notify(0, updateNotification);

 下载完成,点击可以安装:

//点击安装PendingIntent
Uri uri = Uri.fromFile(updateFile);
Intent installIntent = new Intent(Intent.ACTION_VIEW);
installIntent.setDataAndType(uri, "application/vnd.android.package-archive");
updatePendingIntent = PendingIntent.getActivity(UpdateService.this, 0, installIntent, 0);

updateNotification.defaults = Notification.DEFAULT_SOUND;//铃声提醒
updateNotification.contentIntent = updatePendingIntent;//安装界面
updateNotification.contentView.setViewVisibility(com.cnblogs.tianxia.subway.R.id.update_notification_progressblock, View.GONE);
updateNotification.contentView.setTextViewText(com.cnblogs.tianxia.subway.R.id.update_notification_progresstext, "下载完成,点击安装!");
updateNotificationManager.notify(0, updateNotification);

 效果图如下:
   如果你喜欢的话,请推荐一下,谢谢大家的支持!


    
[3] ListActivity刷新数据后界面没法更新的解决
    来源: 互联网  发布时间: 2014-02-18
ListActivity刷新数据后界面无法更新的解决

        之前遇到ListActivity数据更新后界面却没更新的问题。当时是直接重新跳转到这个Activity解决的,因为之前的操作

 

大多是跳转到一个新的界面对ListActivity的数据进行操作后再重新回来,因此用户不会发现有什么不同。今天遇到要直接

 

在ListActivity里对数据进行操作更新界面,再次遇到数据更新后界面却没更新的问题。查了一些资料后解决了。

 

如果使用ArrayAdapter,那么就不要再对ArrayAdapter中封装的List进行数据操作了,这样是没用ArrayAdapter

 

有类似add()、clear()等方法操作数据,然后用arrayAdapter.notifyDataSetChanged()和

 

ListActivity.setListAdapter(arrayAdapter)更新数据。如果使用CursorAdapter对应可执行cursor的requery()。

 

 

之后就打算开一个线程更新数据然后关闭之前打开的ProgressDialog。结果报了异常:

 

android.view.ViewRoot$CalledFromWrongThreadException:Only the original thread that created a view

 

hierarchy can touch its views.意思是说自定义的线程不能更新ui,只能在主线程里更新ui。

 

 

解决方法有两种:

 

1.在Activity.onCreate(Bundle savedInstanceState)中创建一个Handler类的实

 

例,重写Handler类的handleMessage方法,在其中调用更新界面显示的函数。

 

2.利用Activity.runOnUiThread(Runnable),将更新函数写在Runnable的run方法

 

中。

 

这样问题就解决了。


 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3