工作中遇见的小问题,小技巧,小知识点都汇总在这,乱炖
一、 我在Android studio创建来一个新demo,demo所有的按钮文字都是小写,运行的时候发现变成了大写!
Android按钮英文全是大写改为正常
解决方案:
最后我发现我Activity引用的是AppCompatActivity ,改成引用Activity就好了,如果你还想继续引用AppCompatActivity,那么需要修改样式。在App总样式上添加该属性即可。
<item name="android:textAllCaps">false</item>
**二、**检查所发送的Intent是否有接收者
今天有一个需求,需要先检查发送的Intent是否有接受者,解决方法如下:
public Boolean getIntentIsAvailable(Intent intent){
final PackageManager pm = mActivity.getApplicationContext().getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(intent,PackageManager.GET_ACTIVITIES);
boolean ret = list.size() >0;
Log.d(TAG,"getIntentIsAvailable["+ret+"]");
return ret;
}
三、 java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/params/BasicHttpParams;
通常情况下在app下的 build.gradle
的android层级下加入useLibrary 'org.apache.http.legacy’这样的一句就能解决,但是我把
android {
compileSdkVersion 29
buildToolsVersion "28.0.0"
``````
useLibrary 'org.apache.http.legacy'
``````
}
但是我把项目升级到 targetSdkVersion 28 的时候只加这样一句不能解决问题了,我们还需要在AndroidManifest.xml 的application 节点内加上
<uses-library android:name="org.apache.http.legacy" android:required="false" />
截图如下:
这样就能解决了。
四、 Android 保持当前activity屏幕常量
在activity的onCreate中添加如下代码:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager
.LayoutParams.FLAG_KEEP_SCREEN_ON);
五、 为什么我们使用handler的时候创建一个静态内部类的方式能避免内存泄漏?
答:因为静态内部类不持有外部类的引用。
未完待续。。。。