1、isFinishing()
判断this Activity是否finish,自己调用或者某种因素请求finish,经常用在onPause函数里面。
一个activity在finish时候,还有收到广播,结果导致bug,需要 if(isFinishing()){。。。。},或
在activity finish时候,这时候handler.sendMessage,这时候也会导致bug,需要最好在finish函数里面removeAllCallbackAndMessage(this)。
2、overridePendingTransition(int id ,int id)
- //实现淡入浅出的效果
- overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
- //由左向右滑入的效果
- //overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
- //实现zoommin 和 zoomout,即类似iphone的进入和退出时的效果
- //overridePendingTransition(R.anim.zoomin, R.anim.zoomout);
SortedMap接口是排序接口,只要是实现了此接口的子类,都属于排序的子类,TreeMap也是此接口的一个子类。SortedMap接口的定义如下:
- public interface SortedMap<K,V>
- extends Map<K,V>
之前讲解的TreeMap就是此接口的实现类,所以TreeMap可以完成排序的功能。
4、ActivityLifecycleCallbacks
-
API仅在14+版本上提供此接口回调,Android 4.0以下系统如何使用?
- API仅针对上述几个Activity的生命周期事件留出了接口回调,可能已无法满足日益过渡为使用Fragment的今日需求
bind service,保持service的连接。
6、
为了讲清自定义权限,先以不同的程序之间访问Activity增加权限限制为例。假设应用程序A中有MainActivity,应用程序B中有AActivity和BActivity。现在想通过A中的MainActivity直接打开B中的BActivity。
meta-data
在AndroidManifest.xml中,<meta-data>元素可以作为子元素,被包含在<activity>、<application> 、<service>和<receiver>元素中,但
不同的父元素,在应用时读取的方法也不同。
1 :在Activity的应用。
int titleId = getResources().getIdentifier("action_bar_title","id", "android");
TextView actionBarTitleTextView = (TextView) findViewById(titleId);
9、
this.getResources().updateConfiguration(config,null);
10、
try {
MediaStore.Images.Media.insertImage(this.currentlyAssociatedActivity.getContentResolver(),new
File(download.getSavePath()).getAbsolutePath(),
download.getName(), "");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
ContentResolver contentResolver = this.currentlyAssociatedActivity
.getContentResolver();
ContentValues values = new ContentValues(4);
values.put(Images.Media.DATE_TAKEN, System.currentTimeMillis());
values.put(Images.Media.MIME_TYPE, "image/png");
values.put(Images.Media.ORIENTATION, 0);
values.put(Images.Media.DATA, download.getSavePath());
contentResolver.insert(Images.Media.EXTERNAL_CONTENT_URI, values);
private static void scanPhoto(Context ctx, String imgFileName) {
Intent mediaScanIntent = new Intent(
Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
File file = new File(imgFileName);
Uri contentUri = Uri.fromFile(file);
mediaScanIntent.setData(contentUri);
ctx.sendBroadcast(mediaScanIntent);
}