Android技术小点
YaoHHH
只会Google的Android开发小白,已放弃了,现在在银行搬砖。
展开
-
Android Activity生命周期和启动模式
Activity的生命周期及启动模式常用回调方法:onCreate:activity创建过程,正在初始化,setContentView加载布局资源onStart:activity正在启动,activity已经加载完布局可以显示,但Activity还处在后台,未在前台无法和用户交互onResume:activity在运行状态,可见,在前台,可以交互onPause:activity...原创 2018-12-12 14:23:06 · 528 阅读 · 0 评论 -
Android 权限获取与权限大全
普通权限声明即可,危险权限需要动态获取AndroidManifest中声明权限<!-- 允许程序打开网络套接字 --><uses-permission android:name="android.permission.INTERNET" /><!-- 允许程序设置内置sd卡的写权限 --><uses-permission android:n...原创 2018-12-29 17:03:18 · 2108 阅读 · 0 评论 -
Android写入文件电脑上看不到的原因
我在用断点续传根据URL下载一张图片到手机外部存储之后,在手机上的文件管理APP中可以看到文件已经成功写入,但是连接电脑在电脑上看不到该文件. 在重命名文件之后或者重启手机之后能在电脑上看到该文件 经过网上查找资料终于发现原因:Environment.getExternalStorageDirectory().getPath()获取外部存储由于现在很多手机因为容量足够,不再...原创 2019-01-11 13:05:52 · 5792 阅读 · 1 评论 -
Android 登录注册的实现
客户端从服务端得到的token数据用SharedPreferences存储路径:/data/data/包名/shared_prefs/filename(什么是token,就是代表用户身份的一个长字符串,具有唯一性,并且每次重新登录,用户就会获得一个新的token,只有客户端和服务器上的token一致才能证明用户的登录状态的合法性) SharedPreferences使用的简单示例...原创 2019-01-02 09:37:17 · 3789 阅读 · 0 评论 -
Android 通知渠道Notification Channel
Android8.0也就是API26开始要求通知设置Channel,否则会报错 查看官方通知:通知在 Android 8.0 中,我们已重新设计通知,以便为管理通知行为和设置提供更轻松和更统一的方式。这些变更包括:Android 8.0 中的通知长按菜单。通知渠道:Android 8.0 引入了通知渠道,其允许您为要显示的每种通知类型创建用户可自定义的渠道。用户界面将...原创 2019-01-11 13:54:39 · 23882 阅读 · 0 评论 -
Android Service介绍和使用
什么是ServiceService服务是Android四大组件之一,是一种程序后台运行的方案,用于不需要用户交互,长期运行的任务Service并不是在单独进程中运行,也是运行在应用程序进程的主线程中,在执行具体耗时任务过程中要手动开启子线程,应用程序进程被杀死,所有依赖该进程的服务也会停止运行 创建Service右键包名,new→Service→Service,然后finish...原创 2019-01-10 09:23:22 · 13271 阅读 · 0 评论 -
Android 通知使用
这里直接复制官方给的Demo,之后再补充细节官方GitHub的通知Demo(加入了通知Channel):https://github.com/googlesamples/android-NotificationChannels/ Notification.Builder是API26中的类,旧版用NotificationCompat.BuilderPendingIntent可以设...原创 2019-01-21 15:24:06 · 812 阅读 · 0 评论 -
Android细节002
31去掉默认主题的ActionBar的代码实现 super.onCreate(savedInstanceState); supportRequestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main);32添加系统原生menu,要有...原创 2019-01-22 15:01:02 · 216 阅读 · 0 评论 -
Android定时执行
Android定时任务一种方法用Java的Timer类,还有种方法用android的Alarm类Alarm类可以应对手机自动休眠可以设置唤醒CPU所以Android上的定时任务用Alarm更好AlarmManager alarmManager= (AlarmManager) getSystemService(Context.ALARM_SERVICE);alarmManger.se...原创 2019-01-23 14:45:13 · 1372 阅读 · 1 评论 -
Android线程池
ExecutorAndroid中线程池的概念来自Java中的Executor,Executor是一个接口,真正的线程池实现为ThreadPoolExecutor ThreadPoolExecutor的一个常用构造方法的参数说明:corePoolSize线程池的核心线程数,默认情况核心线程一直存活,及时在闲置状态maximumPoolSize线程池所能容纳的最大线程数,当活动线程...原创 2019-01-30 15:33:38 · 211 阅读 · 0 评论 -
Android 存储路径
先放一个官方介绍(需要翻墙)https://developer.android.com/guide/topics/data/data-storage 1.SharedPreferences存储(键值对,简单的数据)路径:/data/data/包名/shared_prefs/filename具体操作请看我的这篇文章:Android数据持久化2.文件存储:输出到文件openFi...原创 2018-12-29 16:58:06 · 508 阅读 · 0 评论 -
Android studio日志使用教程
进行Android开发离不开日志工具,我发现很多讲日志的博客还是Eclipse版的,所以写了一个Android Studio版的日志入门使用写给新手看下 当然System.out.println("abc");也可以在日志工具中显示出来不过和日志相比缺少了日志级别,日志过滤器等功能,所以通常都是用log而不用System.out.println 先放个Logcat界面的...原创 2018-12-11 16:01:35 · 7935 阅读 · 1 评论 -
LayoutInflater.inflate简易的使用说明记录
LayoutInflater它主要是用于Android加载布局。基本用法:LayoutInflater layoutInflater=LayoutInflater.from(this);View view=layoutInflater.inflate(R.layout.activity_test01_item01,rl,false);rl.addView(view); La...原创 2018-12-11 10:19:30 · 187 阅读 · 0 评论 -
Android Fragment生命周期在手机使用的各个情况中的简要说明(锁屏/熄屏,手机横屏,手机按home键回到主页面)
手机打开app并成功加载Fragment 手机横屏:销毁解绑Fragment并重新绑定并且创建 手机熄屏,锁屏,以及按home键回到主页面:Fragment进入停止状态 手机重新点开app,或者重新开启屏幕:Fragment回到运行状态 Activity和Fragment回调方法的先后执行顺序创建与销毁停止与恢复运行 ...原创 2018-12-12 14:30:23 · 1531 阅读 · 0 评论 -
Android 获取layout宽高之前调用View.measure(0,0)的原因
private ConstraintLayout constraintLayout;constraintLayout=findViewById(R.id.screen_test);constraintLayout.measure(0,0);Log.i(TAG,"onCreate:"+constraintLayout.getMeasuredHeight()+","+constraintLay...原创 2018-12-12 14:52:16 · 1241 阅读 · 0 评论 -
Tablayout默认选中的tab的监听事件无效,第一个Viewpage或者Fragment无法出现
当我们执行addTab方法添加Tab的时候,最后会调用到 dispatchTabSelected方法,在dispatchTabSelected方法里面调用addOnTabSelectedListener 的onTabSelected()方法。但是这个时候,mSelectedListeners 为空(因为这个时候我们还没有设置OnTabSelectedListener),因此,就没有回调到onTab...原创 2018-11-29 14:13:17 · 3097 阅读 · 0 评论 -
onRestoreInstanceState什么时候使用?
主要介绍onRestoreInstanceState和onCreate的区别 onRestoreInstanceState(Bundle savedInstanceState)只有在activity被系统回收或是销毁的时候.重新创建activity的情况下才会被调用。 onDestroy -> onCreate -> onStart -> onRestoreIns...原创 2018-12-05 16:50:06 · 2167 阅读 · 0 评论 -
Android一个根据手机屏幕将dp转px的小方法(草稿)
dp转px(根据当前手机的屏幕密度density) //该方法用于dp To pxpublic static int dpToPx(Context context ,int dp) { float density; density = context.getResources() .getDisplayMetrics() ...原创 2018-12-12 10:54:08 · 967 阅读 · 0 评论 -
addview使用和.LayoutParams()的使用(草稿版)
一个View的index越大,说明它越在上面P.s.index为-1则在线性布局位于底部(-1具体原因不清楚) addViewadded in API level 1 public void addView (View child, int index, ViewGroup.LayoutParams params)Adds a child view with th...原创 2018-12-11 11:23:12 · 922 阅读 · 0 评论 -
Android细节001
1replace同一个Fragment不会调用任何回调方法(不会重新绑定和创建)transaction.replace(R.id.fuoyun_layout,fragment);2获取Fragment返回栈的个数getFragmentManager().getBackStackEntryCount()3 后添加的图层覆盖到先添加的图层之上 4获取fragment...原创 2018-12-19 19:14:03 · 184 阅读 · 0 评论 -
Android Intent隐式启动的匹配规则
隐式调用需要Intent能够匹配目标组件的IntentFilter(<activity>标签中的<intent-filter>)中所设置的过滤信息 IntentFilter的过滤信息包括action,category,data 只有一个Intent同时匹配 action,category,data才算完全匹配一个activity可以有多个<inte...原创 2018-12-21 17:43:09 · 934 阅读 · 0 评论 -
Android真机(小米8)warning:uninstalling will remove the application data
小米手机调试报错记录一个小问题在项目真机测试的时候发现装不上去(小米8手机)It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present.and the re-installingwarning:uninstalling will ...原创 2018-12-11 09:59:13 · 566 阅读 · 0 评论 -
Android缓存机制
缓存Android开发中,如果每次访问资源都通过网络访问会导致流量使用和速度慢的情况对于图片或者另外大的资源的加载(视频,音频),使用缓存就很有必要两种缓存方法首先缓存到存储设备上,这样下次加载资源时就不需要使用网络,其次可以缓存到内存中,从内存中加载的速度要高于从存储设备中加载 所谓的二级缓存就是指即有内存缓存又有存储设备缓存 官方提供了LruCache和Disk...原创 2019-01-30 16:57:35 · 262 阅读 · 0 评论