六、 安装新的apk
/** * 安装apk * @param file */ private void install(File file){ Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"); finish(); startActivity(intent); }
激活系统的安装的组件 intent();
设置数据 和数据的类型
setDataAndType();
setData();
setType();
详细关于Android中打开各种文件的intent: http://blog.csdn.net/dawanganban/article/details/11265363
七. 对话框 创建 AlertDialog.buidler
builder.create().show();
八. Handler message 子线程里面通知主线程ui更新
private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); // 判断服务器版本号 和客户端的版本号 是否相同 if (isNeedUpdate(versiontext)) { Log.i(TAG, "弹出来升级对话框"); showUpdataDialog(); } } };
// 让当前的activity延时两秒钟 检查更新 new Thread(){ @Override public void run() { super.run(); try { sleep(2000); handler.sendEmptyMessage(0); } catch (InterruptedException e) { e.printStackTrace(); } } }.start();
九、 GridView ListView adapter - > BaseAdapter
十、.Xml ->定义一个背景颜色 shape (参考api文件)
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <stroke android:width="0.5dip" android:color="#ff505050" /> <corners android:radius="2dip" > </corners> <gradient android:startColor="#ff404040" android:centerColor="#ff383838" android:endColor="#ff404040" /> </shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http......
<corners........ 定义几何图形的弧度
<gradient...... 定义使用渐变颜色填充
<padding..... 定义几何形状的内边距
<size...... 定义几何形状大小
<solid...... 定义使用单色填充
<stroke...... 定义为几何形状绘制边框
十一、Xml -> selector 颜色选择器 根据当前控件的状态显示不同颜色.
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/button_background" android:state_enabled="true" android:state_window_focused="false"/> <item android:drawable="@drawable/button_background_selected" android:state_pressed="true"/> <item android:drawable="@drawable/button_background" android:state_focused="true"/> <item android:drawable="@drawable/button_background"/> </selector>
十二、.Sharedpreference 的使用
SharedPreference是Android提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息,例如,默认欢迎语,登录用户名和密码等。其以键值对的方式存储,使得我们能很方便进行读取和存入。
SharedPreference 文件保存在/data/data/<package name>/shared_prefs 路径下(如/data/data/com.android.alarmclock/shared_prefs/com.android.text_preferences.xml),通过cat命令可以查看文件,如:
通过Activity自带的getSharedPreferences方法,可以得到SharedPreferences对象。
public abstract SharedPreferences getSharedPreferences (String name, int mode);
name:表示保存后 xml 文件的名称
mode:表示 xml 文档的操作权限模式(私有,可读,可写),使用0或者MODE_PRIVATE作为默认的操作权限模式。
1.数据读取:
通过SharedPreferences对象的键key可以获取到对应key的键值。对于不同类型的键值有不同的函数:getBoolean,getInt,getFloat,getLong.
public abstract String getString (String key, String defValue);
2.数据存入:
数据的存入是通过SharedPreferences对象的编辑器对象Editor来实现的。通过编辑器函数设置键值,然后调用commit()提交设置,写入xml文件。
public abstract SharedPreferences.Editor edit ();
public abstract SharedPreferences.Editor putString (String key, String value);
public abstract boolean commit ();
说明:
十三、自定义对话框的写法
定义一个样式文件 重写了系统的一些默认配置
name="android:windowBackground">@drawable/title_background
name="android:windowNoTitle">true</item>
十四.Md5的编码和加密 (不可逆的加密算法)
package cn.itcast.mobilesafe.util; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Encoder { public static String encode(String pwd) { try { MessageDigest digest = MessageDigest.getInstance("MD5"); byte[] bytes = digest.digest(pwd.getBytes()); StringBuffer sb = new StringBuffer(); for(int i = 0;i<bytes.length;i++){ String s = Integer.toHexString(0xff&bytes[i]); if(s.length()==1){ sb.append("0"+s); }else{ sb.append(s); } } return sb.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); throw new RuntimeException("buhuifasheng"); } } }
十五.style的使用
十六.更改activity切换的动画效果
overridePendingTransition(R.anim.alpha_in,R.anim.alpha_out);
Activity的切换动画指的是从一个activity跳转到另外一个activity时的动画。
它包括两个部分:
一部分是第一个activity退出时的动画;
另外一部分时第二个activity进入时的动画;
在Android的2.0版本之后,有了一个函数来帮我们实现这个动画。这个函数就是YoverridePendingTransition
j这个函数有两个参数,一个参数是第一个activity退出时的动画,另外一个参数则是第二个activity进入时的动画。
这里需要特别说明的是,关于overridePendingTransition这个函数,有两点需要主意
1.它必需紧挨着startActivity()或者finish()函数之后调用"
````2.它只在android2.0以及以上版本上适用
常见的效果:
淡入淡出效果
overridePendingTransition(R.anim.fade, R.anim.hold);
放大淡出效果
overridePendingTransition(R.anim.my_scale_action,R.anim.my_alpha_action);
转动淡出效果
overridePendingTransition(R.anim.scale_rotate,R.anim.my_alpha_action);
转动淡出效果
overridePendingTransition(R.anim.scale_translate_rotate,R.anim.my_alpha_action);
左上角展开淡出效果
overridePendingTransition(R.anim.scale_translate,R.anim.my_alpha_action);
压缩变小淡出效果
overridePendingTransition(R.anim.hyperspace_in,R.anim.hyperspace_out);
右往左推出效果
overridePendingTransition(R.anim.push_left_in,R.anim.push_left_out);
下往上推出效果
overridePendingTransition(R.anim.push_up_in,R.anim.push_up_out);
左右交错效果
overridePendingTransition(R.anim.slide_left,R.anim.slide_right);
放大淡出效果
overridePendingTransition(R.anim.wave_scale,R.anim.my_alpha_action);
缩小效果
overridePendingTransition(R.anim.zoom_enter,R.anim.zoom_exit);
上下交错效果
overridePendingTransition(R.anim.slide_up_in,R.anim.slide_down_out);
十七.获取新打开的activity的返回值
StartactivityforResult();
SetResultData();
OnActivityResult();
十八.DeviceAdmin的技术 2.2版本支持 ->wipedata() setpwd();
不能直接被卸载 在设备管理器里面取消激活
十九 .checkbox的状态 状态变更的监听器
二十、.gps 单态类 , gps wifi 基站
获取系统服务LOCATION_SERVICE ->locationManager
记得把权限加到清单文件
二十一 .广播接受者
有序广播 ->1.一般的有序广播 abortbroadcast() (-1000~1000)
2.指定了接受者的有序广播setResult();
无序的广播
二十二. 短信内容的处理
Object[] pdus = (Object[])intent.getExtras().get("pdus");