- 博客(789)
- 资源 (1)
- 收藏
- 关注
转载 CSS标签
CSS语法由三部分构成:选择器、属性和值:selector{property:value} 2.CSS的基本写法 h1,h2,h3,h4,h5,h6{ color:green; font-family:Verdana,sans-serif; color:#000; background:#fff;margin:0;padding:0; }3.派生选择器=上下文选择器li...
2020-09-21 09:26:23
629
原创 Android 通信机制之handler消息机制详解源码分析与使用
handler 是android 中处理消息,用于更新UI,我们可以用来实现广告条的轮播,延时任务执行,更新UI,处理数据,和发送数据的使用。全篇分析介绍了handler,分析handler的源码,还有handler常规的使用方法,希望可以帮助到各位。请点赞支持,相互交流。回谢
2019-12-22 09:15:40
1270
原创 Service如何保证服务不被杀死
1,如何保证服务不被杀死【1】因内存资源不足而杀死Service 这种情况比较容易处理,可将onStartCommand() 方法的返回值设为 START_STICKY或START_REDELIVER_INTENT ,该值表示服务在内存资源紧张时被杀死后,在内存资源足够时再恢复。也可将Service设置为前台服务,这样就有比较高的优先级,在内存资源紧张时也不会被杀掉。这两点的实现,我们在...
2019-12-10 09:07:15
697
原创 Service显示启动和隐式启动
1,显示启动 直接上代码一目了然,不解释了。 //显示启动Intent intent = new Intent(this,ForegroundService.class);startService(intent);2, 隐式启动 需要设置一个Action,我们可以把Action的名字设置成Service的全路径名字,在这种情况下android:ex...
2019-12-10 09:06:29
1233
原创 服务Service与线程Thread的区别
1,两者概念的迥异【1】Thread 是程序执行的最小单元,它是分配CPU的基本单位,android系统中UI线程也是线程的一种,当然Thread还可以用于执行一些耗时异步的操作。【2】Service是Android的一种机制,服务是运行在主线程上的,它是由系统进程托管。它与其他组件之间的通信类似于client和server,是一种轻量级的IPC通信,这种通信的载体是bind...
2019-12-10 09:05:35
1999
原创 Service发送前台服务以及通知
1,介绍:【1】前台服务被认为是用户主动意识到的一种服务,因此在内存不足时,系统也不会考虑将其终止。【2】前台服务必须为状态栏提供通知,状态栏位于“正在进行”标题下方,这意味着除非服务停止或从前台删除,否则不能清除通知。【3】例如将从服务播放音乐的音乐播放器设置为在前台运行,这是因为用户明确意识到其操作。 状态栏中的通知可能表示正在播放的歌曲,并允许用户启动 Activ...
2019-12-10 09:05:07
938
原创 关于启动服务与绑定服务间的转换问题
1,启动状态和绑定状态同时存在时,使用场景【1】虽然服务的状态有启动和绑定两种,但实际上一个服务可以同时是这两种状态,也就是说,它既可以是启动服务(以无限期运行),也可以是绑定服务。有点需要注意的是Android系统仅会为一个Service创建一个实例对象,所以不管是启动服务还是绑定服务,操作的是同一个Service实例,而且由于绑定服务或者启动服务执行顺序问题将会出现以下两种情况:...
2019-12-10 09:03:38
466
原创 Service使用注意事项
1,注意事项:【1】多个客户端可同时连接到一个服务。不过,只有在第一个客户端绑定时,系统才会调用服务的 onBind() 方法来检索 IBinder。系统随后无需再次调用 onBind(),便可将同一 IBinder 传递至任何其他绑定的客户端。当最后一个客户端取消与服务的绑定时,系统会将服务销毁(除非 startService() 也启动了该服务)【2】 通常情况下我们应该在客户端...
2019-12-10 09:02:26
355
原创 BindService ---使用Messenger服务端与客户端双向消息传递
1, Messenge方式进行进程间通信的原理图:2,实现一个简单服务端与客户端双向消息传递的简单例子。【1】创建一个服务类MessengerService继承自Servicepackage com.ipctest.messenger;import android.app.Service;import android.content.Intent;import andr...
2019-12-10 09:02:01
584
原创 BindService ---使用Messenger在服务端接收信息给客户端发送的消息
1,BindService ---使用Messenger 我们接着来了解服务与远程进程(即不同进程间)通信,而不同进程间的通信,最简单的方式就是使用 Messenger 服务提供通信接口,利用此方式,我们无需使用 AIDL 便可执行进程间通信 (IPC)。以下是 Messenger 使用的主要步骤: 【1】服务实现一个 Handler,由其接收来自客户端的每个调用的回调...
2019-12-10 09:01:05
840
原创 BindService ---扩展Binder类
1,BindServcie --扩展Binder类开启服务 前面描述过,如果我们的服务仅供本地应用使用,不需要跨进程工作,则可以实现自有 Binder 类,让客户端通过该类直接访问服务中的公共方法。其使用开发步骤如下 【1】创建BindService服务端,继承自Service并在类中,创建一个实现IBinder 接口的实例对象并提供公共方法给客户端调用【2】从 onBin...
2019-12-10 09:00:15
379
原创 Service中bindService 介绍
1,介绍:【1】绑定服务是Service的另一种变形,当Service处于绑定状态时,其代表着客户端-服务器接口中的服务器。【2】当其他组件(如 Activity)绑定到服务时(有时我们可能需要从Activity组建中去调用Service中的方法,此时Activity以绑定的方式挂靠到Service后,我们就可以轻松地方法到Service中的指定方法),组件(如Activity)可以...
2019-12-10 08:59:04
524
原创 Service用startService方式开启服务
1,创建SimpleService服务类【1】SimpleService继承了Service类,【2】重写了onBind方法,该方法是必须重写的,但是由于此时是启动状态的服务,则该方法无须实现,返回null即可,只有在绑定状态的情况下才需要实现该方法并返回一个 IBinder的实现类(这个后面会详细说),【3】接着重写了onCreate、onS...
2019-12-09 23:13:09
1134
原创 Service生命周期
【1】生命周期: 其中左图显示了使用 startService() 所创建的服务的生命周期,右图显示了使用 bindService() 所创建的服务的生命周期。通过图中的生命周期方法,我们可以监控Service的整体执行过程,包括创建,运行,销毁,关于Service不同状态下的方法回调在前面的分析中已描述得很清楚,这里就不重复了,下面给出官网对生命周期的原文描述:...
2019-12-09 23:12:15
535
原创 Service在AndroidManifest注册参数
1,Service在清单文件中的声明 前面说过Service分为启动状态和绑定状态两种, 但无论哪种具体的Service启动类型,都是通过继承Service基类自定义而来,也都需要在AndroidManifest.xml中声明,那么在分析这两种状态之前, 我们先来了解一下Service在AndroidManifest.xml中的声明语法,其格式如下:...
2019-12-09 23:11:10
1917
原创 Service介绍
1,Service是什么: Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。服务可由其他应用组件启动(如Activity),服务一旦被启动将在后台一直运行,即使启动服务的组件(Activity)已销毁也不受影响。 此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可以处理网络事务、播放音乐,执行文件 I/O 或与...
2019-12-09 23:10:36
2489
原创 Activity 管理工具类
Activity 管理工具类package com.example.ljw.basedemo;import android.app.Activity;import android.content.Context;import android.content.Intent;import java.util.Calendar;import java.util.Stack;...
2019-12-09 23:08:35
359
原创 如何将一个Activity设置成窗口的样式
如何将一个Activity设置成窗口的样式只需要给我们的Activity配置如下属性即可。android:theme="@android:style/Theme.Dialog"更多关于Activity详解:https://blog.youkuaiyun.com/cricket_7/category_9571387.html...
2019-12-09 23:06:13
445
原创 如何保存activity的状态
如何保存activity的状态Activity的状态通常情况下系统会自动保存的,只有当我们需要保存额外的数据时才需要使用到这样的功能。一般来说, 调用onPause()和onStop()方法后的activity实例仍然存在于内存中, activity的所有信息和状态数据不会消失, 当activity重新回到前台之后, 所有的改变都会得到保留。但是当系统内存不足时, 调用onPause(...
2019-12-09 23:05:43
635
原创 如何安全退出Activity
如何退出Activity?如何安全退出已调用多个Activity的Application1、通常情况用户退出一个Activity只需按返回键,我们写代码想退出activity直接调用finish()方法就行。2、记录打开的Activity:每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。//伪代码List<Activit...
2019-12-09 23:05:13
562
原创 Activity切换主题功能
切换主题功能使用Activity的切换主题功能实现1、定义属性<declare-styleable name="MyThemeAttrs"><attr name="btn_color" format="color" /><attr name="btn_background" format="color" />...
2019-12-09 23:03:44
415
原创 Activity 中onActivityResult使用
1,onActivityResult介绍:【1】在进行界面间的跳转和传递数据的时候,我们有的时候要获得跳转之后界面传递回来的状态,数据等信息。这个时候,我们不一定需要使用Intent进行跳转回原先设置的界面,而是使用onActivityResult方法就可以解决这个问题。2,实现逻辑原理:我们这里假设有A、B两个Activity,由A跳转到B,然后B返回到...
2019-12-09 23:02:33
974
原创 Activity异常生命周期
Activity异常生命周期 异常的生命周期是指Activity被系统回收或者当前设备的Configuration发生变化(一般指横竖屏切换)从而导致Activity被销毁重建。异常的生命周期主要分以下两种情况: 【1】相关的系统配置发生改变导致Activity被杀死并重新创建(一般指横竖屏切换)【2】内存不足导致低优先级的Activity被杀死1...
2019-12-07 16:26:14
477
原创 Activity生命周期运行案例
1,验证几个主要的生命周期情况package com.cmcm.activitylifecycle;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import andr...
2019-12-07 15:58:10
484
原创 Activity生命周期
1,Activity 的形态【1】Active/Running: Activity处于活动状态,此时Activity处于栈顶,是可见状态,可与用户进行交互。 【2】Paused: 当Activity失去焦点时,或被一个新的非全屏的Activity,或被一个透明的Activity放置在栈顶时,Activity就转化为Paused状态。但我们需要明白,此时Activit...
2019-12-07 15:47:15
357
原创 Activity启动模式案例
1,standard标准【1】Activity启动模式,不出意外,使用最多的一定是默认的,standard标准的。但是standard标准的 这种启动模式,每启动一个Activity 就进栈一个Activity,这样有些情况下是不合理的,我的Activity在最顶端就没有必要,再次启动进栈一个 或者启动进栈多个Activity的引用重复,这样不利于ActivityManager的管理,...
2019-12-07 15:40:39
266
原创 Activity定义启动模式
3, 两种方法定义不同的启动模式【1】使用清单文件 在清单文件中声明 Activity 时,您可以指定 Activity 在启动时应该如何与任务关联。 【2】使用 Intent 标志 调用 startActivity() 时,可以在 Intent 中加入一个标志,用于声明新 Activity 如何(或是否)与当前任务关联。 2,第一种:使用清单文件 and...
2019-12-07 15:24:01
230
原创 Activity启动模式
1,什么是启动模式 启动模式允许您定义 Activity 的新实例如何与当前任务关联。 2,Andorid四种启动模式:【1】 "standard"(默认模式) 默认。系统在启动 Activity 的任务中创建 Activity 的新实例并向其传送 Intent。 Activity 可以多次实例化,而每个实例均可属于不同的任务,并且一个任务可以拥有多...
2019-12-07 15:23:29
191
原创 Activity清空返回栈
清理返回栈如果用户长时间离开任务,则系统会清除所有 Activity 的任务,根 Activity 除外。 当用户再次返回到任务时,仅恢复根 Activity。系统这样做的原因是,经过很长一段时间后,用户可能已经放弃之前执行的操作,返回到任务是要开始执行新的操作。您可以使用下列几个 Activity 属性修改此行为:【1】alwaysRetainTaskState如...
2019-12-07 15:22:56
546
原创 Activity任务和返回栈
1,介绍:【1】任务是指在执行特定作业时与用户交互的一系列 Activity。 这些 Activity 按照各自的打开顺序排列在堆栈(即返回栈)中【2】任务栈的作用是用来维护Activity,打开一个Activity 进栈,关闭一个Activity叫出栈【3】一般情况一个应用程序对应一个任务栈我们操作的Activity永远是栈顶的Activity.应用程序退出了实际上是任务栈清空...
2019-12-07 15:21:48
420
原创 设置应用进入的第一个Activity
1,AndroidManifest设置应用主活动【1】如下面代码所示需要在AndroidManifest文件中添加以下内容<application>....<activity android:name=".MainActivity"><intent-filter>&l...
2019-12-07 15:21:16
310
原创 AndroidManifest文件下<Activity>标签
1,每创建一个Activity都需要在AndroidManifest中注册对应的配置信息2, <Activity><activity android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] andr...
2019-12-06 10:29:56
358
原创 Activity介绍
1,什么是Activity Activity是一个Android的应用组件,它提供屏幕进行交互。 每个Activity都会获得一个用于绘制其用户界面的窗口,窗口可以充满哦屏幕也可以小于屏幕并浮动在其他窗口之上。 一个应用通常是由多个彼此松散联系的Activity组成,一般会指定应用中的某个Activity为主活动,也就是说首次启动应用时给用户呈现的Activity。将Ac...
2019-12-06 10:28:23
5413
原创 Android 控件其他属性
Android中所有控件的属性:属性值 true 或者 false1,设置窗口【1】设置是否在窗口冻结时(如旋转屏幕)保存View的数据 android:saveEnabled 【2】设置布局调整时是否考虑系统窗口(如状态栏) android:fitsSystemWindows 【3】设置屏幕常亮 android:keepScreenOn 属性值必须为i...
2019-12-06 10:23:51
264
原创 Android控件文本属性
Android中所有控件的属性:属性值 true 或者 false1,文本内容对齐【1】本元素的文本与父元素文本对齐 android:layout_alignBaseline 属性值问Android内置值的2,文本对齐方式【1】定义文字方向 android:textDirection 【2】文字对齐方式 android:textAlignment...
2019-12-06 10:21:55
253
原创 Android 控件滚动属性
Android中所有控件的属性:属性值 true 或者 false1,设置滚动容器,【1】定义布局是否作为一个滚动容器 可以调整整个窗体 android:isScrollContainer 2,滚动时颜色变化【1】定义滚动时边缘是否褪色 android:requiresFadingEdge 属性值必须为id的引用名“@id/id-name”3,设置滚动后...
2019-12-06 10:21:16
415
原创 Android 控件平移,旋转,透明,缩放属性
属性值为具体的像素值1,平移的距离【1】水平方向的移动距离 android:translationX 【2】垂直方向的移动距离 android:translationY 【3】相对于一点的水平方向偏转量 android:transformPivotX 【4】相对于一点的垂直方向偏转量 android:transformPivotY 属性值问A...
2019-12-06 10:20:43
1599
原创 Adnroid 控件动画属性
Android中所有控件的属性:属性值 true 或者 false1,定义绘制动画【1】定义子布局也有动画效果 android:animationCache 【2】定义子布局是否应用绘图的高速缓存 android:alwaysDrawnWithCache 【3】定义布局是否应用子布局的背景 android:addStatesFromChildren 【4】布...
2019-12-06 10:19:53
251
原创 Android 控件点击,可见,焦点属性
Android中所有控件的属性:属性值 true 或者 false1,定义控件布局是否可见【1】定义布局是否可见 android:visibility 【2】滚动条自动隐藏 android:fadeScrollbars 2,定义控件点击,触摸【1】定义是否可点击 android:clickable 【2】定义是否可长点击 android:lo...
2019-12-06 10:19:32
354
原创 Adnroid 控件位置属性
控件属性值为true 或者 false1,相对整体位置居中【1】水平居中 android:layout_centerHrizontal 【2】垂直居中 android:layout_centerVertical 2,相对于父元素摆放位置【1】相对于父元素完全居中 android:layout_centerInparent 【2】贴紧父元素的下边...
2019-12-06 10:18:26
278
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人