小米12月第二周工作记录 工作记录
小米12月第二周工作记录
12.08 当ViewStub可见,或者调用 inflate()函数时,才会加载这个布局资源文件,原先是不在视图树上的。
merge
减少层级数
include
Activity跳转
如果已经启动了四个Activity:A,B,C和D。在D Activity里,我们要跳到B Activity,同时希望C 也finish掉,可以在startActivity(intent)里的intent里添加flags标记,如下所示:
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivityForResult
Activity 设置全透明主题。可以看到下层的Activity。
WindowSoftInputMode 定义activity与软键盘的交互方式 here. adjustResize
,adjustPan
奇怪问题 startActivityForResult() 后直接调用 onActivityResult()在使用中,还没等到被调用的 Activity 返回,onActivityResult() 就被执行了。找了半于,才得知,这与 Activity 的加载模式(launchMode)有关,该属性可以在 AndroidManifest.xml 中设置。原先将其设为 launchmode="SingleTask"
,经测试,所有需要传递或接收的 Activity 不允许设置该属性,或只能设为标准模式,否则系统将在 startActivityForResult() 后直接调用 onActivityResult()。
12.09 重写onReSize事件,捕捉软键盘弹出与消失事件
12.10 《深入理解android》 注册JNI函数 例:
静态注册:javah命令生成JNI层函数信息到packagename_class.h文件中。
动态注册:JNINativeMethod保存关联关系,调用AndroidRuntime::registerNativeMethods注册。
这里还有一个很棘手的问题:这些动态注册的函数在什么时候和什么地方被调用呢?当Java层通过System.loadLibrary加载完JNI动态库后,紧接着会查找该库中一个叫JNI_OnLoad的函数。如果有,就调用它,而动态注册的工作就是在这里完成的。
JNIEnv是一个与线程相关的代表JNI环境的结构体。调用JavaVM的AttachCurrentThread函数,就可得到这个线程的JNIEnv结构题。线程退出前,调用DetachCurrentThread函数释放对应的资源。
JNIEnv的作用:
PerferenceActivity perference.xml Preference初用 学习
ListView 设置无分割线 ListView中的layout_item.xml要使height生效,必须要inflate(view,parent,false)
依附一个parentView
。
PerferenceActivity setContentView
以后,Preference
界面不自动刷新了。notifyChange()
手动通知更新。
12.11 Activity 主题,透明 onPause
,不透明 onStop
;
adb shell dumpsys activity activities | sed -En -e ‘/Running activities/,/Run #0/p’D 查Activity启动模式;通过lauchMode或Intent.flag都可以设置启动模式
adb shell dumpsys activity activities | sed -En -e ‘/Running activities/,/Run #0/p’D 只有堆栈的activity信息。 |
被一个bug弄惨了,一直提示 ShankSettingActivity instances=3; limit=2
.表现为A–>ShankSettingActivity 正常 。退回正常。再进去正常,再退回提示上述错误,直接回退两格ACtivity。搞了半天,原来是我没有继承Shank的BaseActivity
,那么Shank的BaseActivity
到底是干什么的呢。问问。
12.12 HandlerThread
blog comments powered by Disqus