当前位置:操作系统 > 安卓/Android >>

Android 心得不断更新中

1.每个Activity都有一个自己的window:
  在activity的onCreate方法中,调用setContentView方法,其调用的是getWindow().setContentView()方法。
而getWindow()返回的Window 对象其实是Window抽象类的子类PhoneWindow.
mWindow = PolicyManager.makeNewWindow(this);
该句code是在Activity的attach()方法中调用。
2.在UI线程中调用invalidate()方法,即执行刷新操作—调用view 的onDraw()方法,但是如果在UI的子线程中,需要使用postInvalidate()方法。
3.应用程序写日志的Tag获取,如下:
private static String TAG = CameraTestActivity.class.getSimpleName();
4.java方法中可变参数支持,如下例子:
 
[java] 
 private static String findSettableValue(Collection<String> supportedValues, 
                                          String... desiredValues) { 
   String result = null; 
    if (supportedValues != null) { 
      for (String desiredValue : desiredValues) { 
        if (supportedValues.contains(desiredValue)) { 
          result = desiredValue; 
          break; 
        } 
      } 
    } 
    return result; 
  } 
//调用: 
1)  
      flashMode = findSettableValue(parameters.getSupportedFlashModes(), 
                                    Camera.Parameters.FLASH_MODE_TORCH, // string 常量"torch" 
                                    Camera.Parameters.FLASH_MODE_ON);      // string常量"on" 
2) 
      flashMode = findSettableValue(parameters.getSupportedFlashModes(), 
                                    Camera.Parameters.FLASH_MODE_OFF);    // string常量"off" 
5.分享接口:
[java]
Intent i=new Intent(Intent.ACTION_SEND);    
i.setType("text/plain");    
i.putExtra(Intent.EXTRA_SUBJECT,"这里是标题");    
i.putExtra(Intent.EXTRA_TEXT, "这里是分享内容");     
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    
startActivity(Intent.createChooser(i, "分享"));  
6.使用应用程序包名启动外部应用:
[java] 
//1)使用Intent的setComponent方法 
Intent intent = new Intent(); 
intent.setComponent(new ComponentName(“包名”, “包名.主类名”)); 
intent.setAction(Intent.ACTION_VIEW); 
startActivity(intent); 
//2)使用包管理器 
Intent intent = new Intent(); 
intent = getPackageManager().getLaunchIntentForPackage(“包名”); 
startActivity(intent); 
7.使用Collections接口进行排序:
[java] 
//1)定义一个排序的类: 
  private static class ByFirstStringComparator implements Comparator<String[]>, Serializable { 
    @Override 
    public int compare(String[] o1, String[] o2) { 
      return o1[0].compareTo(o2[0]); 
    } 
  } 
 
//2)使用: 
 Collections.sort(listArray, new ByFirstStringComparator()); 


8.再按一次后退键退出应用程序:
[java] 
private static Boolean isExit = false; 
    private static Boolean hasTask = false; 
    Timer tExit = new Timer(); 
    TimerTask task = new TimerTask() { 
          
        @Override 
        public void run() { 
            isExit = false; 
            hasTask = true; 
        } 
    }; 
      
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        System.out.println("TabHost_Index.java onKeyDown"); 
        if (keyCode == KeyEvent.KEYCODE_BACK) { 
            if(isExit == false ) { 
                isExit = true; 
                Toast.makeText(this, "再按一次后退键退出应用程序", Toast.LENGTH_SHORT).show(); 
                if(!hasTask) { 
                    tExit.schedule(task, 2000); 
                } 
            } else { 
                finish(); 
                System.exit(0); 
            } 
        } 
        return false; 
    } 


9.开启和关闭Android APN网络,即接入点设置
 

10.eclipse xml 编辑设置:
1)修改Eclipse的XML格式化配置
    这一步的配置是使格式化的效果为控件的每个属性配置占一行。进入 Window/Preferences,展开到 XML/XML Files/Editor,
勾选 Split multiple attributes each on a new line
经此配置后,每次使用快捷键  Ctrl+Shift+F 键格式化后每个属性配置就会占一行。

2)压缩节点的声明方式
    这步的目的是将没有子节点的元素的声明方式进行压缩,如将 <TextView ...></TextView>转化为  <TextView .../>。
方法为在XML文件内空白地方点击鼠标右键,选择 Source/Cleanup Document...

11.杀死后台进程
[java] 
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);  
activityManager.killBackgroundProcesses("name.of.your.package");  
需要一个权限
 KILL_BACKGROUND_PROCESSES补充:移动开发 , Android ,

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,