1、 启动Launcher 方法一:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
ResolveInfo res = mContext.getPackageManager().resolveActivity(intent, 0);
intent = mContext.getPackageManager().getLaunchIntentForPackage(res.activityInfo.packageName);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
2、当需要在代码中做接收到按键响应就重置某些操作的时候可以使用回调函数 onUserInteraction()
转载理解:此方法是activity的方法,当此activity在栈顶时,用户对手机:触屏点击,按home,back,menu键都会触发此方法。
注:下拉statubar,旋转屏幕,锁屏,不会触发此方法.
目前觉得它会用在屏保应用上,因为当你触屏机器 就会立马触发一个事件,而这个事件又不太明确是什么,正好屏保满足此需求
这个可以应用于 多长时间没有任何操作然后进行锁屏(把 默认锁屏时间给去掉)
注:下拉statubar,旋转屏幕,锁屏,不会触发此方法.
目前觉得它会用在屏保应用上,因为当你触屏机器 就会立马触发一个事件,而这个事件又不太明确是什么,正好屏保满足此需求
这个可以应用于 多长时间没有任何操作然后进行锁屏(把 默认锁屏时间给去掉)
3、imageButton 设置src 图片后,会出现背景框
将background设置为#00FFFFFF(透明)
将background设置为#00FFFFFF(透明)
4、数据库的操作很重,一次读写操作花费 10~20ms 是很常见的,这样的耗时很容易造成界面的卡顿。所以通常情况下,如果可以的话一定要避免在主线程中处理数据库。(文件的读写也是一样)
5、在线程中可以使用runOnUiThread()则就是切换回主线程:
new Thread() {
@Override
public void run() {
processUser(user); // 尝试修正 User 数据
runOnUiThread(new Runnable() { // 切回 UI 线程
@Override
public void run() {
userView.setUser(user);
}
});
}).start();
6、 同一时间只能有一个View获取到焦点。但是可以有多个View处于selected状态;而且selected状态是可以传递给子View的。
dsp_text_color.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="@color/white"/>
<item android:state_selected="true" android:color="@color/white"/>
<item android:state_pressed="true" android:color="@color/white"/>
<item android:color="@color/half_white"/>
</selector>
<TextView
android:id="@+id/mic_microphone_type_tv_a"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical|right"
android:layout_marginRight="30dp"
android:gravity="center"
android:text="@string/dsp_microphone_wirelessconnect"
android:textColor="@drawable/dsp_text_color"
android:textSize="19sp" />
可以在代码中调用 mic_microphone_type_tv_a. setSelected(true)来使得xml生效。
7、