android基础
方兵兵
大数据开发工程师
展开
-
EventBus3.0 Activity之间 收不到消息
注册eventbus的时候要放在onCreate里面,注销要放在onDestory里面,其他都不行,收不到消息。@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EventBus.getDefault().regi原创 2017-12-01 18:27:12 · 2194 阅读 · 0 评论 -
外拨电话广播
Android系统内部相当于已经有了一个电台,定义了好多广播事件,比如外拨电话,短信到来,sd卡状态,电磁电量变化…1、IP拨号器 两个电话之间实际上是通过基站之间建立一个socket连接IP拨号器就是第三方公司搞了另外的服务器,原来拨打电话走的移动、联通、电信的收费平台。现在加上IP比如17951,路线:打电话系统就会发出外拨电话的广播,在拨出的电话前面加上17951 当我们配置的action原创 2017-05-26 15:08:05 · 878 阅读 · 0 评论 -
通过bindService调用服务里面的方法
通过bindService方式调用服务方法里面的过程 (1)、定义一个服务,服务里面有一个方法需要Activity调用。 (2)、定义一个中间人对象(IBinder)继承Binder; (3)、在onbind方法里面把我们定义的中间人对象返回。 (4)、在Activity的onCreate方法里面调用bindService,目的是获取我们定义的中间人对原创 2017-05-25 16:59:31 · 3558 阅读 · 1 评论 -
Service的两种启动模式
服务是在后台运行,可以理解为是没有界面的activity,定义一个类继承Service。由于没有界面所以和界面有关的生命周期,Service都没有。//定义服务需要在清单文件配置,服务也可以配置Intent-Filterpublic class FirstService extends Service { @Override public IBinder onBind(Intent原创 2017-05-25 16:18:43 · 610 阅读 · 0 评论 -
IntentFilter的匹配规则
IntentFilter的匹配规则 启动Activity分为两种,显式调用和隐式调用,原则上一个Intent不应该既是显式调用又是隐式调用,如果二者共存的话以显示调用为主,这里介绍隐式调用。隐式调用需要Intent能够匹配目标组件的IntentFilter中所设置的过滤信息,如果不匹配将无法启动目标Activity。IntentFilter中的过滤信息有action、category、d原创 2017-05-25 00:47:23 · 217 阅读 · 0 评论 -
Activity的启动模式
1、Activity的LaunchMode 首先Activity为什么需要启动模式,默认情况下,当多次启动同一个Activity的时候。系统会创建多个实例并把它们一一放入任务栈中。当我们单击back键,会发现这些Activity会一一回退,任务栈是一种“后进先出”的栈结构,这个比较好理解。每按一次back键就会有一个Activity出栈,直到栈空为止,当栈中无任何Activity的时候,原创 2017-05-24 18:30:29 · 225 阅读 · 0 评论 -
Activity典型情况下的生命周期
1、典型情况下的生命周期分析 在正常情况下,Activity会经历如下生命周期。(1) onCreate:表示Activity正在被创建,这是生命周期的第一个方法,在这个方法中,我们可以做一些初始化工作,比如调用setContentView去加载界面布局资源、初始化化Activity所需要数据等。(2) onRestart:表示Activity正在重新启动,一般情况下,当当前Activity从不可转载 2017-05-23 15:28:12 · 439 阅读 · 0 评论 -
Activity异常情况下的生命周期
Activity异常情况下的生命周期情况1:资源相关的系统配置发生改变导致Activity被杀死并重新创建 当程序启动时,系统就会根据当前设备的情况去加载合适的Resource资源,比如说横屏手机和竖屏手机会拿到两张不同的图片(设定了landscape或者portrait状态下的图片)。比如说当前Activity处于竖屏状态,如果突然旋转屏幕,由于系统配置发生了改变,在默认情况下,Activity原创 2017-05-23 19:43:42 · 939 阅读 · 0 评论 -
androidstudio创建animtaion-list文件及创建帧动画
关于AndroidStudio中动画文件夹anim无法创建animation-list失效问题。 之前用eclipse一般动画文件都是在res下创建一个anim文件夹,然后创建xml文件,选择animation-list标签。事实上这样写确实没毛病,但是如果在AndroidStudio这样写的话就会报错。解决问题是,AndroidStudio里如果想要创建animation-list标签的xmll原创 2017-03-16 22:48:38 · 3278 阅读 · 0 评论 -
sd卡状态监听广播
先配置清单文件<receiver android:name="..."> <intent-filter> //卸载sd卡 <action android:name="android.intent.action.MEDIA_UNMOUNTED" /> //挂载sd卡 <action android:na原创 2017-05-26 15:50:21 · 811 阅读 · 0 评论 -
卸载安装、开机重启广播
配置清单文件<receiver android:name="..."> <intent-filter>//android.intent.action.PACKAGE_INSTALL谷歌预留的,暂时没有作用 <action android:name="android.intent.action.PACKAGE_INSTALL" />原创 2017-05-26 17:10:41 · 315 阅读 · 0 评论 -
广播接收者两种注册方式及优缺点
两种注册方式 静态注册:在清单文件中配置<receiveandroid:name=".IncomingSMSReceiver " ><intent-filter> <actionandroid:name="Android.provider.Telephony.SMS_RECEIVED")<intent-filter><receiver>动态注册:在代码中注册IntentFilterfil原创 2017-06-15 18:08:45 · 2121 阅读 · 0 评论 -
android缓存数据路径集合
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。 大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。 这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。 如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?Environment.getDataDirectory() = /dataEnvi原创 2017-06-27 11:19:57 · 588 阅读 · 0 评论 -
android 6.0(api 23) SDK,不再提供org.apache.http.*(只保留几个类)
android6.0之后,已经找不到HttpClient、HttpPost等类了,想要继续使用,需要在androidstudio的build.gradle中配置 useLibrary ‘org.apache.http.legacy’完整配置如下: ` android { compileSdkVersion 25 buildToolsVersion "25.0.2"原创 2017-06-06 17:12:15 · 285 阅读 · 0 评论 -
socket客户端与服务端消息互发
客户端public class SocketClient { public static void main(String[] args){ SocketClient client = new SocketClient(); client.start(); } public void start(){ BufferedReader原创 2017-05-17 10:55:58 · 512 阅读 · 0 评论 -
本地广播
LocalBroadcastManager是Android Support包提供了一个工具,是用来在同一个应用内的不同组件间发送Broadcast的。 使用LocalBroadcastManager有如下好处:1、发送的广播只会在自己App内传播,不会泄露给其他App,确保隐私数据不会泄露2、其他App也无法向你的App发送该广播,不用担心其他App会来搞破坏3、比系统全局广播更加高效和系统广原创 2017-05-26 19:43:59 · 174 阅读 · 0 评论 -
特殊的广播接收者
特殊的广播接收者 比如操作特别频繁的广播事件,屏幕的锁屏和解屏,电池电量的变化,这样的广播接收者在清单文件里面注册无效。动态注册广播接收者//[1]动态的去注册屏幕解锁和锁屏的广播ScreenReceiver screenReceiver = new ScreenReceiver();//[2]创建intent-filter对象IntentFilter filter = new原创 2017-05-26 19:26:49 · 394 阅读 · 0 评论 -
无序广播
发送无序广播Intent intent = new Intent();intent.setAction("com.tony.custombroadcast");intent.putExtra("name","新闻联播每天晚上7点开整");sendBroadcast(intent);定义自定义广播接收者public class ReceiveCustomReceiver extends Broa原创 2017-05-26 17:40:54 · 357 阅读 · 0 评论 -
Android Fragment
转载自: http://blog.csdn.net/jjwwmlp456/article/details/38367991转载 2017-03-15 11:34:45 · 175 阅读 · 0 评论 -
Android commit和commitAllowingStateLoss区别及应用场景
fragment中commit和commitAllowingStateLoss的区别: http://huxian99.github.io/2016/08/28/Android-commit%E5%92%8CcommitAllowingStateLoss%E5%8C%BA%E5%88%AB%E5%8F%8A%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/?utm_sour转载 2017-03-14 17:00:58 · 1203 阅读 · 0 评论 -
使用Android studio Gradle 实现友盟多渠道打包
使用Android studio Gradle 实现友盟多渠道打包: http://bbs.umeng.com/thread-9119-1-1.html转载 2017-03-14 10:56:50 · 269 阅读 · 0 评论 -
android优化图片内存
android中图片非常消耗内存,现在不同的手机分配给应用的内存不近相同,有的几十M,有的有100M,如果应用中有非常多的图片,则需要做处理,不然很容易出现OOM现象。 android分配个图片的内存是按照图片分辨率乘以每个像素点所占字节决定的,公式为HightPix*WithPix*Bitmap.Config.ARGB? Color.Rgb指的是色彩编码的种类 Bitmap.Config.A原创 2015-11-10 18:57:18 · 409 阅读 · 0 评论 -
android获取网络数据
android获取网络数据有字符串、图片、文件对于不同的数据的获取方法如下 字符串: public String getDataFromServer(String Urlpath) { String result=”“; HttpClient httpclient = new DefaultHttpClient(); HttpGet http原创 2015-11-11 10:00:33 · 485 阅读 · 0 评论 -
android检查网络状态
检查网络状态在每个应用中都会用到的: public static void checkNetWorkConnect(Context context) { if (null != context) { //ConnectivityManager 主要管理网络连接的相关操作 ConnectivityManager manager = (Connectiv原创 2015-11-11 10:06:47 · 341 阅读 · 0 评论 -
ListView上下拉刷新
listview的上下拉刷新在大部分的app中都有用到,可以使用第三方的PullToRefresh框架也可以自定义listview控件。下面是自定义的listview类:public class LoadListView extends ListView implements OnScrollListener{View footer;//底部布局int totalItemCount;//总数量原创 2015-11-11 10:35:36 · 400 阅读 · 0 评论 -
定义继承RelativeLayout的组合控件
定义继承RelativeLayout的组合控件,该控件适用于替换顶部ActionBar1、首先在values文件夹中定义属性文件attr.xml 代码如下: <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="Topbar"> <attr name="ttitle"原创 2015-11-11 12:25:30 · 3030 阅读 · 0 评论 -
ImageLoader的使用
在app中处理图片的网络下载,三级缓存可以使用谷歌的开源框架,下载jar包:universal-image-loader-1.9.3.jar,导入项目中。在Application中配置参数:public class MyApplication extends Application {public static Context context; @Override public v原创 2015-11-27 15:14:31 · 387 阅读 · 0 评论 -
android碎片的replace()和add()、hide()、show()的区别
android应用大量用到了碎片,一般的界面布局大都是:顶部topbar、内容content、底部tab 内容content用的是framelayout布局中添加fragment。底部tab用来切换不同的framelayout中不同的fragment。 切换fragment有两种方法: FragmentTransaction transaction = getFragmentManager(原创 2016-03-18 16:14:58 · 3577 阅读 · 0 评论 -
Android 服务之startService和bindService以及前台服务的创建
android服务一般用来做一些,后台操作,数据处理。比较常用。 android服务包括前台服务和后台服务. 前台服务一般用来做音乐的后台播放,可以在通知栏显示。 前台服务的创建:public class ForegroundService extends Service {@Override public void onCreate() { private Notif原创 2016-03-17 14:18:19 · 2733 阅读 · 0 评论 -
android设置外部字体
将下载的字体文件msyh.ttf放入asset/fonts文件夹中将需要改字体的控件传入下面的方法即可 public static void setFontStyle(TextView view) {Typeface tf = Typeface.createFromAsset(assetManager, "fonts/msyh.ttf"); view.setTypeface(tf);vie原创 2015-11-10 18:39:34 · 386 阅读 · 0 评论 -
PopupWindow
popwindow弹框可以在activity上显示出一个对话框public class DaoHan { private String shouye; private String personinfo; private String myevent; private String kaquan; private String shezhi原创 2015-11-10 18:24:12 · 294 阅读 · 0 评论 -
Activity管理类
在项目中我们经常要去管理activity,在退出app时有时不能退出所有的activity,这时我们需要自己定义一个用来管理activity的类。 package com.example.all.utils;import java.util.Stack;import android.app.Activity; import android.util.Log;public class Activi原创 2015-11-10 18:01:24 · 485 阅读 · 0 评论 -
animation中translate.xml,%p的意思
<translatexmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="50%p" android:toYDelta="50%p" android:fillAfter原创 2017-03-12 20:28:20 · 1103 阅读 · 0 评论 -
列表页面数据流程处理
1、列表页面处理一般列表页面布局中包含一个列表控件、include一个无网络重试的layout,一个环形进度条 初始状态显示列表控件、隐藏include和环形进度条。一、有网络1、显示加载数据的环形进度条(在网络较差的情况下,不至于页面空白,很奇怪),在加载完数据后,隐藏环形进度条。2、数据完成后,下拉刷新和上拉加载不用显示环形进度条,因为本身有进度条的效果3、在显示include无网络重试的la原创 2016-09-27 10:57:04 · 369 阅读 · 0 评论 -
配置adb环境变量及查看sharepreference
第一步:新建系统环境变量android: 变量值写D:\Android\android-sdk\platform-tools;D:\Android\android-sdk\tools 第二步:配置Path路径 第三部:测试配置成功否 如图所示便是成功配置了adb。查看sharepreference文件:原创 2016-09-26 10:33:40 · 1658 阅读 · 0 评论 -
使用Gson解析json数据
使用Gson解析json数据,非常方便,要细心的配置实体类Model。比如json字符串为:{ "showapi_res_code": 0, "showapi_res_error": "", "showapi_res_body": { "allPages": 1503, "ret_code": 0, "contentlist"原创 2016-07-27 00:47:56 · 1050 阅读 · 1 评论 -
android_AlertDialog_点击屏幕不消失
Android系统默认AlertDialog是点击屏幕就消失的.根据业务需求,点击屏幕不消失的方法:AlertDialog dialog = new AlertDialog.Build(this).setView(view).create();dialog.setCanceledOnTouchOutside(false);dialog .show();原创 2015-11-04 10:45:33 · 588 阅读 · 0 评论 -
android_01Activity_知识小结
学习android最开始就是学习activity,每位同学的学习经历应该都类似activity是什么?activity中文译为活动,和用户的活动都需要依赖它,activity是一个重量型的角色,其他的三大组件都需要它才能正常工作。activity得生命周期onCreate()->onStart()->onResume()->onPause()->onStop()->onDestro原创 2015-11-06 17:58:59 · 397 阅读 · 0 评论 -
android5.0_RecycleView初识
RecycleView是android5.0中的控件,是用来替换ListView,GridView的,RecycleView需要自己写点击事件 二不能像ListView直接设置操作灵活,这样的新东西肯定是要学习的。下面就学习的结果做总结。1、要先导入android-support-v7-recycleview.jar包到项目中。2、新建布局文件添加控件<RelativeLayout原创 2015-11-10 17:34:45 · 379 阅读 · 0 评论 -
android广播
在android中,能够监听系统广播,也可以自己在程序中发送广播,广播的作用主要是传递某种状态信息给别的组件,例如监听网络的状态,电量的状态等。步骤: 1、申明广播。 创建a extends BroadcastReceiver,重写onReceive方法。 onReceive()中是接受到广播后执行的部分。2、注册广播。有两种方式: 1原创 2016-03-16 17:45:55 · 368 阅读 · 0 评论