推广 热搜: 行业  设备    系统  参数  经纪    教师  机械  中国 

Android MutableLiveData value没有回调 安卓开发values里没有style手机震动器「Android MutableLiveData value没有回调 安卓开发valu

   日期:2025-02-17     作者:caijiyuan    caijiyuan   评论:0    移动:http://sjzytwl.xhstdz.com/mobile/news/15038.html
核心提示:启动虚拟机时,在 launch options 窗口中 有个 wipe user data ,勾选它,将会让虚拟机 【恢复出厂设置】2.【如果想让自己的应用


  1. 启动虚拟机时,在 launch options 窗口中 有个 wipe user data ,勾选它,将会让虚拟机 【恢复出厂设置】

2.【如果想让自己的应用程序有多个启动图标:】


  1. --------隐式意图---------
    [打开电话拨号器 ]

4.--------显示意图---------

  1. string.getBytes(String charsetName) ; //使用指定的字符集(编码方式),将字符串编码成一个 字节数组,并返回

6.-----------------------------------【Activity两种启动方式,四种启动模式】-------------------------------------------
【Activity的两种启动方式】:

【 Activity的四种启动模式】:


7.一个正常运行的Activity,突然切换为横屏或竖屏:【会先销毁再创建】 onPause–>onStop–>onDestroy–>onCreate–>onStart–>onResume

8.在xml布局文件中使用 include标记可以在本布局文件的指定位置处,引用其他的布局文件:

-------------------------【单击某个按钮弹出几种形式的菜单】–OptionMenu,ContextMenu,PopupMenu ---------------------------------

9.安卓中实现单击某个按钮,弹出optionMenu(选项菜单) .只需要调用Activity.this.openOptionsMenu();方法就可以了


10.单击某个按钮, 弹出(ContextMenu)上下文菜单:


14.Spinner 的两种显示模式: (对话框,下拉列表)

  1. 安卓开发中对于需要访问数据库的项目一般建议创建:

16.AdapterView(如:ListView)的数据刷新-----当数据源的内容发生改变后,就应该对Adapter进行数据刷新

一般调用:this.adapter.notifyDataSetChanged();


17.【常见的Dialog有十种】:普通Dialog,多按钮普通Dialog,普通列表Dialog,单选列表Dialog,多选列表Dialog,,自定义Dialog,



  1. 【从MainActivity跳转到目标Activity然后返回MainActivity 】

19.目前发现:安卓中常见的可以使用链式调用的方式编写代码的有:


  1. 【获取当前程序的版本号】

——————————————————————————————————————
21. new Date().toLocaleString() //虽然已经被废弃,但是效果依然不错

——————————————————————————————————————————
22.【动态设置颜色的技巧】:

————————————————————————————————————————————————————————————————

23,对于SQLiteDatabase数据库的 表都建议使用 id 字段做主键 (自增)且 Integer 类型(实际上是:32位的int类型)

——————————————————————————————————————————————————————————————————————————————————
24.

——————————————————————————————————————————————————————————————————————————————————————————————————————————————————

25.关于 JavaBean 与 Json 数据的转换建议使用 谷歌提供的 Gson 框架

—————————————————————————————————————————————

  1. 分享功能实现 有两种方式:1.【使用系统自带的分享接口: (会显示一个分享列表供用户选择)】

——————————————————————————————————————————————————————————————————————————————————————————

29.使用四大组件 都需要在清单文件中进行注册,但广播接收器例外;因为它还可以动态注册(且ResultReceiver也无需注册)。

且四大组件都可以定义IntentFilter。

且四大组件的创建都是:创建一个类然后继承自某个组件类(例:MainActivity extends Activity)
MyFristService extends Service
MyReceiver extends BroadcastReceiver
AccountProvider extends ContentProvider
——————————————————————————————————————————————————————————————————————————————————————————
30。屏蔽Back键:


安卓中可以使用 SystemClock.sleep(ms) 来实现睡眠,且不需要做异常处理、

二者区别:Thread.sleep()是java提供的函数。在调用该函数的过程中可能会发生InterruptedException异常。
SystemClock.sleep()是android提供的函数。在调用该函数的过程中不会发生InterruptedException异常,中断事件将要被延迟直到下一个中断事件。U

————————————————————————————————————————————————————————————
32.对于接口两种处理方式:
1.创建一个类实现该接口
2.查看并使用接口的子类

接口可以隐藏代码的细节,让程序员暴露自己想暴露的部分代码


  1. 关于AIDL与IPC的一些面试题:

——————————————————————————————————————————————————————————————————————

34.【安卓中实现跨进程通信有多种方式:

——————————————————————————————————————————————————————————————
35. 获取到Cursor对象后必须先进判断,满足条件才能使用cursor:

  1. 如何将一个Android工程 变成一个 类库文件?

37.【注意:接收一个新项目时,首先打开eclipse–》window–>Preferences–》workspace—>建议将编码改成UTF-8】
————————————————————————————————————————————————————
38.versionName和versionCode的区别和用处:

————————————————————————————————————————————————————————
39.【minSdkVersion、maxSdkVersion、targetSdkVersion, Compile With 四个数值到底有什么区别?】

【补充:在清单文件中会标明 最低以及目标版本,然后编译版本则写在 project.properties文件中】

————————————
40.Eclipse中:选择方法名或者类名处 使用快捷键:alt+shift+J 即可实现快速文档注释。
Eclipse中:在实体类中:alt+shift+s 弹出窗口后,按下s 即可进入 geter/seter方法设置窗口。
Eclipse中:如果需要自动生成toString()方法:右键–》source–》generate toString。
————————————————————————————————
41. 【学习过程中 版本检测,app下载更新等功能的实现:】


42.在安卓开发中应该尽量使用Log.xxx打印日志调试程序。而少用System.out.pritnln();

43.小技巧:也可以利用Handler–Message机制来实现提示用户程序所出现的异常情况;

  1. 小技巧:选中自定义的TextView类名然后右键–》copy Qualified name -->即可获得该类的全类名。com.xx.xxx
    此方法可以适用于任何类的类名上,获取类的全名。

45.有时重写了某个方法发现方法的参数 使用 arg0,arg1…这样表示,则说明这个类没有关联源代码。

46.handler.sendEmptyMessageDelayed(ENTER_HOME, 4000); //发送一个消息,让他延迟4秒后再做处理。

47.可以专门创建一个类(MyConstantValues)用于保存和管理项目中需要的常量.使用时:MyConstantValues.XXX 即可。

48.实际开发中可以 按照组件分包。例如:com.hzy.xxx.activity ,com.hzy.xxx.service …

49.布局文件中,在父控件标签后可以用 android:padding=“10dp” 设置内边距为10dp。
,也可以在子控件中设置 android:layout_margin=“10dp” 设置内边距为10dp。


50.访问项目中 assets 资源目录下的文件。

——————————————————————————————————————————————————————————————————————————
51.【从整个Eclipse中的的某个项目中搜索关键字。】----反编译常用


52.【利用震动器实现手机震动效果】

52.在Service中虽然也可以弹出Toast但是必须使用getApplicationContext();切记不能使用this。

  1. [透明Activity的实现.只需要在清单文件中为这个Activity标签设置 theme属性值即可:]

[如果需要半透明效果则可以在 此Activity的布局文件中设置 底层布局的 background属性为一个半透明的色值(例:#acfc)即可.]

54.改变一个控件的坐标有两种方式:

55.【可以用两个连续的单击事件作为双击事件。实现控件的双击事件监听。一般设置时间间隔为500毫秒之内。】

  1. ★【如果使用了自增长的id做主键,则必须重新开启子线程获取数据,刷新适配器。】

【在数据库中delete或update数据记录时 :

  1. 【添加一个本地刷新方法,每当完成数据库增删改后 就将增删改同步到本地的 beans 中。然后开启本地数据刷新。而不是请求下一页。】

58.- 清单文件中可以指定本应用程序安装位置

59.【让ImageButton实现像是ImageView一样单纯的展示图片,而没有背景(即:透明背景)。】

60.由于ViewPager属于 android.support.v4.view.ViewPager ,因此如果想看到源码则必须按照如下步骤:

61.由于TextView默认是没有点击事件的,因此如果想为TextView设置点击事件则有两种方式:

62.当多个控件有共同的一些属性值时:

63.解决模拟器不能输入中文的问题(无论是用软键盘,还是物理键盘都不行):

64:【实现侧边栏(侧滑面板)效果有四种方式】:

65.:【免root 查看应用程序的 data/data/目录下的文件】

66.当应用进入后台且内存不足的时候,系统是会回收这个Activity的。通常我们都知道要用onSaveInstanceState()去保存状态,用onRestoreInstanceState()去恢复状态。

67.【建议在自定义的 baseApplication 中提供一个 getAppContext() 方法。以后弹出Toast都可以用这个。】



  1. android:animateLayoutChanges 这是一个非常酷炫的属性。
    在父布局加上 android:animateLayoutChanges=“true” 后,如果触发了layout方法(比如它的子View设置为GONE),系统就会自动帮你加上布局改变时的动画特效!!
  2. tools标签可以很好的帮助开发者实时预览xml的效果,
    通过tools:background可以预览控件所占的控件,
    tools:visibility可以把一个gone的控件在预览的时候展示出来,并且运行以后tools标签的内容不会展示出来.

例如:

  1. getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE) 设置安全窗口,禁用系统截屏。
    防止 App 中的一些界面被截屏,并显示在其他设备中造成信息泄漏。(常见手机设备系统截屏操作方式为:同时按下电源键和音量键。)
  2. 在RecycleViewAdapter的 onCreateViewHolder() 方法中,可以使用:
    LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
    来获取 layoutInflater ,从而避免让 Adapter 持有Activity。
  3. 判断使用哪种Context :最简单的方法是根据控件(或组件)的生命周期决定传什么参数。
  4. 可以利用Application实现单进程的组件之间的数据传递。
    通常情况下我们为了实现两个组件之间对象的传递,都需要将对象实现 Parcellable 或 Serializable 接口。但是如果两个Activity处于同一个进程,那么完全可以用Application 来实现。
  5. 当我们调用 getSharedPreference() 方法时实际上会将 磁盘文件中SharedPreference数据加载进内存中。
    因此当我们访问某个保存在SharedPreference中的数据时,实际上会从内存缓存中获取,因此无需担心效率问题。
    不过在往SharedPreference中写数据时就需要注意了:大多数情况下,我们使用 apply 就够了,因为 apply() 是同步写到内存,然后异步提交到磁盘,而 commit() 则是同步写入到内存,并且同步写入到磁盘。
  6. Java 程序中判断当前线程是否是主线程可以用打印 Thread Name 的方式来分辨出主线程,而在Android程序中则有更简便的方法。

可以封装成一个工具方法:

  1. 判断当前程序是否运行在主进程
  1. Jar和Aar的区别
  1. 利用反射根据ActivityName 来开启Activity
  1. 利用 Gson 实现反序列化,将json传解析成Bean对象时,Bean对象的类中定义的某个成员如果是String类型,则可以兼容json数据中的任何普通数据类型的数据。例:

此时依然能够将 14 注入到 TestBean.textSize 字段中。(最终的结果就是: textSize 内容为 “14”)

同理也能注入到一个Map<String,String> 中去:

  1. [通过包名实际上就可以开启手机上所有的App]
  • 如果只是打开这些程序,那么可以利用桌面图标的启动方式,只需利用【包名】就可以开启桌面的任意应用程序!

注意: 打开前需要判断指定包名所对应的应用程序,是否存在

更多详见: …android 开发Intent隐式意图 与 显示意图.txt

本文地址:http://sjzytwl.xhstdz.com/news/15038.html    物流园资讯网 http://sjzytwl.xhstdz.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新文章
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新文章
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号