activity

关于singleTask (LaunchMode随笔)

好久不见. 提交于 2019-11-28 02:38:25
今天,居然被问起关于singleTask的问题,问题如下: “现在Activity栈里有4个Activity,从栈底到栈顶分别是A->B->C->D,现在从Activity D启动Activity B,问此时的栈情况。” 我居然忘了,只是记得有singleTask/singleTop/singleInstance,又还记得有一个是会把他上面的Activity全部Pop出,自己回到栈顶(殊不知这个现象就是问题的答案),从现象和字面上看来好像是singleTop。 回来之后怒查Google,并写了个小程序实践了下,增强印象,并决定写下Blog以便以后回顾。 现在我们先来复习下,singleTask和singleTop分别是什么样的行为。 > LaunchMode为singleTop 其实singleTop很简单,就是当且仅当Activity在栈顶的时候才会复用(意思就是栈顶绝不会有连续两个该Activity),当Activity不在栈顶的时候都会重新创建的。 同学们可能会纳闷,都在顶部那有什么卵用啊,栈顶不就代表着是手机显示的Activity吗?不是的,其实Android系统中有很多的Task栈的,同个栈里的Activity都是一个Task(Task是个复杂的概念,具体的概念请看官方文档,你可以简单理解为一个任务场景)。 比如: TaskA: (栈底)ActivityA1 ->

HierarchyViewer的一些分析记录

无人久伴 提交于 2019-11-28 02:20:37
* 进入系统后先通过ADB建立与手机的连接 POINT LIST: A DeviceSelector 用于选择 设备或者Activity B DeviceBridge.loadWindowData C DeviceSelectionModel.getModel().addDevice(device, windows, viewServerInfo); 、 D 用户:DeviceSelectionModel.getModel().setSelection(device, w); E HierarchyViewerDirector.loadViewHierarchy * 绑定点击事件,点击后获取单个Activity(window)的详细信息 Inspect Screenshot A HierarchyViewerDirector.inspectScreenshot B PixelPerfec.selectionChanged C PixelPerfec.mPaintListener (bind to mCanvas) 转载于:https://www.cnblogs.com/TLightSky/archive/1970/01/01/2941446.html 来源: https://blog.csdn.net/weixin_30569153/article/details/99919885

Android 中的content(个人见解)

女生的网名这么多〃 提交于 2019-11-28 02:16:19
Context是什么? 1) Context是一个抽象类,其通用实现在ContextImpl类中。 2) Context:是一个访问application环境全局信息的接口,通过它可以访问application的资源和相关的类,其主要功能如下: 启动Activity 启动和停止Service 发送广播消息(Intent) 注册广播消息(Intent)接收者 可以访问APK中各种资源(如Resources和AssetManager等) 可以访问Package的相关信息 APK的各种权限管理 从以上分析可以看出,Context就是一个对APK包无所不知的大管家,大家需要什么,直接问它就可以了。(这篇文章是我在csdn中的谋篇文章看到的,总结的不错) 在上面我们看到了conntent的功能和作用下面就是我自己的一些理解 context 在很多地方都会用到,入Dialog、RecyclerView的onCreateView方法中的 View view = Layout.from(parent.getcontent()).inflate.(R.layout.Recycle,parent,flase) 和Intent intent = new Intent(context,NewsContentActivity.class)等这些方法都会用到content, 1) 创建Application

Android进阶-Android MVP模式详解

a 夏天 提交于 2019-11-28 00:23:15
一、MVP概述 MVP,全称 Model-View-Presenter,即模型-视图-层现器。 提到MVP,就必须要先介绍一下它的前辈MVC,因为MVP正是基于MVC的基础发展而来的。两个之间的关系也是源远流长。 MVC,全称Model-View-Controller,即模型-视图-控制器。 View:对应于布局文件 Model:业务逻辑和实体模型 Controllor:对应于Activity 但是View对应于布局文件,其实能做的事情特别少,实际上关于该布局文件中的数据绑定的操作,事件处理的代码都在Activity中,造成了Activity既像View又像Controller,使得Activity变得臃肿。 而当将架构改为MVP以后,Presenter的出现,将Actvity视为View层,Presenter负责完成View层与Model层的交互。现在是这样的: View 对应于Activity,负责View的绘制以及与用户交互 Model 依然是业务逻辑和实体模型 Presenter 负责完成View于Model间的交互 下面两幅图通过数据与视图之间的交互清楚地展示了这种变化: MVC模式下实际上就是Activty与Model之间交互,View完全独立出来了。 MVP模式通过Presenter实现数据和视图之间的交互,简化了Activity的职责

详解intent和intentfilter

寵の児 提交于 2019-11-28 00:10:34
1.Intent对象简介   Intent中文意思指"意图",按照Android的设计理念,Android使用Intent来封装程序的"调用意图",不管启动Activity、Service、BroadcastReceiver,Android都使用统一的Intent对象来封装这一"启动意图"。此外,Intent也是应用程序组件之间通信的重要媒介。   Android应用程序包含三种重要组件:Activity、Service、BroadcastReceiver,应用程序采用一致的方式启动它们,都是依靠Intent来进行启动的,Intent中封装了程序要启动的意图。   下面是Intent启动不同组件的部分方法:   Activity组件:startActivity(Intent intent);startActivityForResult(Intent intent,int requestCode);   Service组件:startService(Intent intent);bindService(Intent intent,ServiceConnection conn,int flags);   BroadcastReceiver组件:sendBroadcast(Intent intent);sendOrderedBroadcast(Intent intent,String

[转]探索 Android 内存优化方法

喜夏-厌秋 提交于 2019-11-27 21:58:25
前言 这篇文章的内容是我回顾和再学习 Android 内存优化的过程中整理出来的,整理的目的是让我自己对 Android 内存优化相关知识的认识更全面一些,分享的目的是希望大家也能从这些知识中得到一些启发。 Android 应用运行在 ART 环境上,ART 是基于 JVM 优化而来的,ART 优化的目标就是为了让 Android 应用能更高效地在 Android 平台运行。 不严谨地说,Android 应用就是一个在 Android 平台运行良好的 Java 程序,承载着 Android 应用的 ActivityThread 同样有 main 方法。 因此只有了解了 Java 的内存管理机制,才能更好地理解 Android 的内存管理机制,如果你对这一块还不熟悉的话,可以看我的上一篇文章 《 Java 内存管理机制 》。 本文的内容可分为下面两部分,大家可以根据自己的需要选择性地阅读。 第一部分 讲的是 Android 内存管理机制相关的一些知识,包括 Dalvik 虚拟机和 ART 环境等。 第二部分 讲的是内存问题的解决与优化方法,包括 Memory Profiler、LeakCanary 工具的使用方法。 1. 为什么要做内存优化? 内存优化能让应用挂得少、活得好和活得久 。 挂得少 “挂”指的是 Crash,假如一个满分的应用是 100 分,那么一个会 Crash

Glide.with(Activity) 也是让 Activity 创建出一个 Fragment ,在 Fragment 的各个生命周期方法内插入回调函数后,执行代码来实现的

孤者浪人 提交于 2019-11-27 21:58:13
SupportActivity.java(support库) ------------------------------ @Override @SuppressWarnings("RestrictedApi") protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); ReportFragment.injectIfNeededIn(this); } ComponentActivity.java(androidx库) ------------------------------ @Override @SuppressWarnings("RestrictedApi") protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); ReportFragment.injectIfNeededIn(this); } ReportFragment.java ------------------------------ @Override public void onActivityCreated(Bundle

同时它们还是实现了 LifecycleOwner 接口,里面的 getLifecycle() 就是返回这个 mLifecycleRegistry 用的。

时光总嘲笑我的痴心妄想 提交于 2019-11-27 21:57:20
SupportActivity.java(用于support库) ------------------------------ public class SupportActivity extends Activity implements LifecycleOwner { private LifecycleRegistry mLifecycleRegistry = new LifecycleRegistry(this); ComponentActivity.java(用于androidx库) ------------------------------ public class ComponentActivity extends Activity implements LifecycleOwner, KeyEventDispatcher.Component { private LifecycleRegistry mLifecycleRegistry = new LifecycleRegistry(this); Fragment.java ------------------------------ public class Fragment implements ComponentCallbacks, OnCreateContextMenuListener,

把activity的 控件传到Fragment

こ雲淡風輕ζ 提交于 2019-11-27 15:41:23
Activity 中 @OnClick({R.id.selectAllLy, R.id.deleteT}) public void onClick(View view) { for(BaseFragment myOrderFragment : myOrderFragments){ ((SuggestMethodFragment)myOrderFragment).onActivityClickEvent(view); } } Fragment 中 public void onActivityClickEvent(View view) { switch (view.getId()) { case R.id.selectAllLy: ... break; case R.id.deleteT: ... break; } } 来源: https://blog.csdn.net/dubo_csdn/article/details/99693249

Android lifecycle 使用详解

旧城冷巷雨未停 提交于 2019-11-27 15:05:10
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/gdutxiaoxu/article/details/86660746 说在前面 本次推出 Android Architecture Components 系列文章,目前写好了四篇,主要是关于 lifecycle,livedata 的使用和源码分析,其余的 Navigation, Paging library,Room,WorkMannager 等春节结束之后会更新,欢迎关注我的公众号,有更新的话会第一时间会在公众号上面通知。 Android lifecycle 使用详解 Android LiveData 使用详解 Android lifecyle 源码解剖 Android livedata 源码解剖 github sample 地址: ArchiteComponentsSample Android 技术人,一位不羁的码农。 简介 Architecture Components lifecycle 是 2107 年 google 大会推出来的,它属于 architecture compoment 里面的一个组件,它可以干什么用呢? 简单得来说,它可以用来检查 Activity 的生命周期,而不必强依赖 Activity。