activity

安卓动画之补间动画

醉酒当歌 提交于 2020-02-26 12:20:47
补间动画 1.作用对象 安卓视图控件(view) 2.效果 1.平移动画:对应TranslateAnimation类 2.缩放动画:对应ScaleAnimation类 3.旋转动画:对应RotateAnimation类 4.透明度动画:对应AlphaAnimation类 3.具体使用 使用方式 首先介绍在xml文件中设置动画效果的公有属性 android : duration = "3000" 动画持续时间(ms) android : startOffset = "0" 动画延迟开始时间(ms) android : fillBefore = "true" 动画播放完后,视图是否会停留在动画开始的状态,默认为 true android : fillAfter = "false" 动画播放完后,视图是否会停留在动画结束的状态,优先于fillBefore值,默认为 false android : fillEnabled = "true" 是否应用fillBefore值,对fillAfter值无影响,默认为 true android : repeatMode = "restart" 选择重复播放动画模式,restart代表正序重放,reverse代表倒序回放,默认为restart android : repeatCount = "1" 重放次数(所以动画的播放次数 = 重放次数 + 1 )

获取上下文的各种方法之间有什么区别?

*爱你&永不变心* 提交于 2020-02-26 03:57:37
在我看过的各种Android代码中: public class MyActivity extends Activity { public void method() { mContext = this; // since Activity extends Context mContext = getApplicationContext(); mContext = getBaseContext(); } } 但是,我找不到任何合适的解释,哪些更好,以及在什么情况下应该使用。 关于这方面的文件的指示,以及关于如果选择了错误的可能会破坏的指导,将非常感激。 #1楼 我同意在Android中使用Contexts时文档很少,但您可以将各种来源的一些事实拼凑起来。 本博客文章 在谷歌官方Android开发者博客写主要是为了帮助解决内存泄漏,但提供了有关上下文一些有用的信息,以及: 在常规Android应用程序中,通常有两种Context,Activity和Application。 阅读文章一点点进一步讲述两个之间的区别时,你可能要考虑使用应用程序上下文( Activity.getApplicationContext() 而不是使用活动上下文 this )。 基本上,应用程序上下文与应用程序相关联,并且在应用程序的整个生命周期中始终是相同的,因为活动上下文与活动相关联

【Android framework】am命令启动Activity流程

杀马特。学长 韩版系。学妹 提交于 2020-02-26 03:30:30
源码基于Android 4.4。 am start -W -n com.dfp.test/.TEstActivity -W:等目标Activity启动后才返回 -n:用于设置Intent的Component Am.java->run()->runStart() ——intent = makeIntent(); ——intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ——mAm. startActivityAndWait (); //调用AMS处理startActivityAndWait ActivityManagerService.java->startActivityAndWait(......) //一般情况下Activity是由另一个应用发起的,此时IApplicationThread是应用和AMS交互的通道,也可算是调用进程的表示。am不是一个应用进程,所以IApplicationThread caller变量为null。 //requestCode为调用者发送的代码,具体含义由调用者解释。如果该值大于0,AMS会保存该值并通过onActivityResult返回给调用者。用于记录启动了哪个Activity的功能 ————mMainStack.startActivityMayWait() //4

Activity启动流程

岁酱吖の 提交于 2020-02-26 03:25:35
转载请标明出处: 一片枫叶的专栏 好吧,终于要开始讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了 Android 体系的CS模式,涉及到了Android中进程通讯Binder机制等等, 首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍: An activity represents a single screen with a user interface. For example, an email application might have one activity that shows a list of new emails, another activity to compose an email, and another activity for reading emails. Although the activities work together to form a cohesive user experience in the email application, each one is independent of the others. As such, a different application can start any

Activity启动(4)----从进程角度看

感情迁移 提交于 2020-02-26 03:24:35
1.AMS简介 在Android中,一个应用运行时为一个进程,系统对应用的管理是通过一个专门的系统级service——ActivityManagerService,即AMS。 系统通过AMS来管理应用进程的生命周期,也包括应用的activity和service的生命周期。 AMS是一个独立的进程,它与应用进程之间需要通过跨进程交互。 2.AMS与应用的跨进程交互 ActivityManagerProxy是AMS的代理,供应用进程调用,可以通过ActivityManagerNative.getDefault()获取。 ApplicationThreadProxy是应用进程的代理,供AMS进程调用。应用启动时,会将应用进程的代理传递到AMS 举个例子说明下,假如有进程A和进程B,进程B要调用进程A,那么A是server端,B是client端。AP是server端的远程代理,代理AP和server端拥有相同的调用接口。进程B要调用进程A的接口fun,直接调用代理AP的接口fun,代理AP通过Binder机制通知进程A,唤起进程A调用相同的接口fun。 3. 从进程角度看Activity启动流程 3.1 简要流程 图中展示的是重新启动一个APP的流程。 (1) 其他应用通过调用startActivity启动另外一个应用

Day2_25_第五天 Fragment高级进阶

主宰稳场 提交于 2020-02-26 02:26:27
Fragment高级进阶 一.Fragment回退栈 二.Fragment传值 1.Activity给Fragment传值 2.Fragment给Activity传值 3.Fragment给Fragment传值 三.Fragment多层嵌套 一.Fragment回退栈 通过代码,将fragment加入到栈中,按返回键时会将fragment弹栈 public class Main2Activity extends AppCompatActivity { private FragmentManager supportFragmentManager ; private BlankFragment blankFragment ; private Button butBack ; @Override protected void onCreate ( Bundle savedInstanceState ) { super . onCreate ( savedInstanceState ) ; setContentView ( R . layout . activity_main2 ) ; initViews ( ) ; } private void initViews ( ) { supportFragmentManager = getSupportFragmentManager ( ) ;

Android进程优先级

房东的猫 提交于 2020-02-26 01:47:54
在安卓系统中: 当系统内存不足时,Android系统将根据进程的优先级选择杀死一 些不太重要的进程,优先级低的先杀死。进程优先级从高到低如下。 前台进程 处于正在与用户交互的 activity 与前台 activity 绑定的 service 调用了 startForeground() 方法的 service 正在执行 oncreate() , onstart() , ondestroy 方法的 service 。 进程中包含正在执行 onReceive() 方法的 BroadcastReceiver 。 系统中的前台进程并不会很多,而且一般前台进程都不会因为内存不足被杀死。特 殊情况除外。当内存低到无法保证所有的前台进程同时运行时,才会选择杀死某个 进程。 可视进程 为处于前台,但仍然可见的 activity (例如:调用了 onpause() 而还没调用 onstop() 的activity)。典型情况是:运行 activity 时,弹出对话框( dialog 等),此时的 activity 虽然不是前台 activity ,但是仍然可见。 可见activity绑定的 service 。(处于上诉情况下的 activity 所绑定的 service ) 可视进程一般也不会被系统杀死,除非为了保证前台进程的运行不得已而为之。 服务进程 已经启动的service 后台进程 不可见的

当你面试的时候,被问到关于Fragment的种种

有些话、适合烂在心里 提交于 2020-02-26 00:36:53
前言 不知道你们都没有自己特别的学习的方法,我是有吧所有的整理成笔记的习惯 比如今天讲解的关于 Fragment 的我会做成笔记 由于文章有些地方代码过于太长了繁琐,所以部分省略掉了,敲了一下午眼睛和手脖子都酸了,至于省略的部分,对这些笔记,面试内容感兴趣的可以看笔记研究,欢迎留言 相关内容后续GitHub更新,想冲击金三银四的小伙伴可以找找看看,欢迎star ( 顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找 ) https://github.com/xiangjiana/Android-MS 一丶Fragment 的使用 实现很简单,创建一个的布局,然后在 Activity 里点击时替换 Fragment mFragmentManager = getSupportFragmentManager(); mFragmentManager.beginTransaction() .replace(R.id.fl_content, fragment) .commitAllowingStateLoss(); 代码很简单,核心就三步: 创建 Fragment 获取 FragmentManager 调用事务,添加、替换 我们一步步来了解这背后的故事。 Fragment 大家应该比较熟悉,放到最后。 先来看看 FragmentManager 。 ####二丶

Android之Widget

試著忘記壹切 提交于 2020-02-25 02:04:43
Android之Widget 其实Android API开发指南中的App Widgets章节 已经说得很清楚了,下面只是对自己的理解进行一次梳理。 -- AppWidget 就是HomeScreen上显示的小部件,提供直观的交互操作。通过在HomeScreen中长按,在弹出的对话框中选择Widget部件来进行创建,长按部件后并拖动到垃圾箱里进行删除。同一个Widget部件可以同时创建多个。 AppWidget的实现主要涉及到以下类: AppWidgetProvider RemoteViews AppWidgetManager 1. 首先需要提供一个定义了Widget界面布局的XML文件(位于res/layout/..),需要注意的是使用的组件必须是RemoteViews所支持的,目前原生API中支持的组件如下: FrameLayout LinearLayout RelativeLayout AnalogClock Button Chronmeter ImageButton ImageView ProgressBar TextView *如果使用了除此之外的组件,则在Widget创建时会导致android.view.InflateExceptionn异常。 PS:这就导致有一些功能或样式无法实现,如很基本的list或文本编辑框都是无法直接实现的

通过 ANE(Adobe Native Extension) 启动Andriod服务 推送消息(一)

本秂侑毒 提交于 2020-02-24 17:50:35
项目组用air来开发手游, 但有些在原生应用里很容易实现的功能没有办法在air中直接调用,比如说震动,服务等等。但Adobe 提供了一种方法让air间接调用本地代码(java,object-c...),就是接下来要介绍的ANE(Adobe Native Extension) 也叫本地扩展。 查了下资料,早在2011年11月 Adobe 官方就发一篇介绍ANE的文章附一个简单的例子, 在去年八月份Adobe 开发者中心 开始发一系列较为详尽的文章, 有兴趣可以阅读下: http://www.adobe.com/cn/devnet/air/articles/developing-native-extensions-air.html http://www.adobe.com/cn/devnet/air/air_for_android.html 我先照着官方例子,做了一个调节多好媒体音量的扩展,并在测试机器正常运转。于是我开始着手准备项目需求 -- 利用Andriod 服务来推送应用消息, 于是也有了这系列文章的由来,接下来我将介绍我做的一些工作。 一、 HellAndriod Service 由于我这前没有做过Andriod 开发,对java也不是很熟悉,唯一的Java编程经历是在大学时参与过的J2EE的项目,所以我先做了一个Andriod 服务的本地应用练练手. 这样的例子在网上很多