activity

Activity管理类,android

匿名 (未验证) 提交于 2019-12-02 23:39:01
package net.oschina.app; import java.util.Stack; import android.app.Activity; import android.app.ActivityManager; import android.content.Context; public class AppManager { private static Stack<Activity> activityStack; private static AppManager instance; private AppManager(){} /** * 单一实例 */ public static AppManager getAppManager(){ if(instance==null){ instance=new AppManager(); } return instance; } /** * 添加Activity到堆栈 */ public void addActivity(Activity activity){ if(activityStack==null){ activityStack=new Stack<Activity>(); } activityStack.add(activity); } /** * 获取当前Activity(堆栈中最后一个压入的) */

TP5.1 遇见问题整理

匿名 (未验证) 提交于 2019-12-02 23:39:01
   fetchSql(true) self::table('ecm_draw_address')->field('id')->where(array('store_id'=>$data['store_id']))->fetchSql(true)->find(); 2. 多where条件     where("字段名","表达式",“查询条件”) $where = [ ['activity_id', 'eq', $this->data['activity_id']], ['phone', 'neq', ""], ]; $award_info = DrawAwardModel::getList($where,'id','100','0','award_level asc');      

Matrix源码分析之第一篇

匿名 (未验证) 提交于 2019-12-02 23:38:02
Matrix源码分析之第一篇 概述 前几天腾讯将一款Android应用性能监控的框架matrix开源了,源码地址在 https://github.com/Tencent/matrix ,作者是微信终端团队。matrix到底是什么?据官方说法如下: Matrix 是一款微信研发并日常使用的 APM(Application Performance Manage),当前主要运行在 Android 平台上。 Matrix 的目标是建立统一的应用性能接入框架,通过各种性能监控方案,对性能监控项的异常数据进行采集和分析,输出相应的问题分析、定位与优化建议,从而帮助开发者开发出更高质量的应用。 Matrix 当前监控范围包括:应用安装包大小,帧率变化,启动耗时,卡顿,慢方法,SQLite 操作优化,文件读写,内存泄漏等等(此段截取自matrix的GitHub介绍) 下面直接看源码: <!-- more --> 代码的入口在application的onCreate()里进行初始化的, Matrix.Builder builder = new Matrix.Builder(this); ``` //省略了一部分构造器创建对象的一段代码,这里仅说明是入口 ``` Matrix.init(builder.build()); 和leakcanary等库一样在application初始化

第七次作业

你。 提交于 2019-12-02 23:14:17
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.z7.MainActivity" > <requestFocus /> <TextView android:id="@+id/textView1" android:layout_width="300dp" android:layout_height="50dp" android:layout

关于Rxjava+Retrofit网络请求防止内存泄露

匿名 (未验证) 提交于 2019-12-02 21:53:52
简介 不知道大家有没有碰到这个问题,在一个Activcity正在加载数据,网络请求还未完毕,此时用户将Activity关闭了,这时候就造成了内存泄露(为啥泄露自己想),Activity并没有被释放的,这时候网络请求完了,回调了请求成功方法,填充view就开始报null异常了...,不知道大家有没有遇到这个问题?在以前网络请求发起是很难取消掉的,我们是在onSuccess回调加了判断Activity是否被销毁掉,在进行填充view 原理 我们有了Rxjava,流水线,既然事件可以订阅,也可以取消订阅,我们只需要在Activity被销毁的时候,将这个页面的所有的订阅全部取消掉 主要使用的几个类 CompositeDisposable(个人理解:一个管理订约) DisposableObserver就是一个Observer,他实现了Disposable接口 ʵս 所有的网络请求都使用BaseObserver public abstract class BaseObserver<T> extends DisposableObserver<T> { public BaseObserver(CompositeDisposable compositeDisposable) { compositeDisposable.add(this); } } 在BasePresenter public

Fragment详解

不想你离开。 提交于 2019-12-02 21:40:38
相关文章: 1、 《Fragment详解之一——概述》 2、 《Fragment详解之二——基本使用方法》 3、 《Fragment详解之三——管理Fragment(1)》 4、 《Fragment详解之四——管理Fragment(2)》 5、 《Fragment详解之五——Fragment间参数传递》 6、《Fragment详解之六——如何监听fragment中的回退事件与怎样保存fragment状态》 今天开始给大家总结下有关Fragment使用方法的东东,内容比较多,这个系列可以要写的博客数量会多一点。 一、为什么会有Fragment——设计理念 Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上–例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏 幕要比手机的大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。Fragment允许这样的一种设计,而不需要你亲自来管理 viewhierarchy的复杂变化。 通过将activity的布局分散到fragment中, 你可以在运行时修改activity的外观,并在由activity管理的back stack中保存那些变化.( http://developer.android.com/guide/topics/fundamentals/fragments.html )

Android中Style和Theme的使用总结

烂漫一生 提交于 2019-12-02 21:38:09
越来越多互联网企业都在Android平台上部署其客户端,为了提升用户体验,这些客户端都做得布局合理而且美观.......Android的Style设计就是提升用户体验的关键之一。Android上的Style分为了两个方面: Theme是针对窗体级别的,改变窗体样式; Style是针对窗体元素级别的,改变指定控件或者Layout的样式。 Android系统的themes.xml和style.xml(位于/base/core/res/res/values/)包含了很多系统定义好的style,建议在里面挑个合适的,然后再继承修改。 Style是View中一些属性的集合,包括height,padding,font color,background等等,Style单独定义在xml文件中,类似与web页面中css的角色,将设计和内容分开,便于修改和重复使用。 定义Style: style文件需要保存在res/values目录下,文件名任意,但是必须是xml文件,sytle文件的根标记必须是<resources>。写了一个简单示例,效果如下: main.xml文件代码: [c-sharp] view plain copy print ? <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http:/

Android Preference使用

百般思念 提交于 2019-12-02 20:13:13
Android Preference经常使用在例如设置的功能,Android提供preference这个键值对的方式来处理这种情况,自动保存这些数据,并立时生效,这种就是使用android sharedpreferences方式进行保存的,不需要我们手动来写,下面的图片就是使用Preference来进行保存的 添加一个简单的Preference 我们在res目录下添加一个xml目录,里面添加一个itchq文件,这个文件相当于我们的Preference布局文件 复制代码 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <CheckBoxPreference android:key="checkbox" android:title="CheckBoxPreference" android:summary="check it box" /> <RingtonePreference android:key="ring" android:title="ringtone" android:summary="check a ringtone" /> </PreferenceScreen> 复制代码

自学fragment笔记

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-02 19:53:01
fragment(碎片)是一种嵌入在activity中的UI片段,它可以用来描述activity中的一部分布局,fragment可以把屏幕布局分成好几块片段,进行模块化的管理,从而使程序更加合理和充分地利用屏幕的空间。一个activity中可以包含多个fragment,一个fragment也可以在多个activity中使用,如果在activity中有多个相同的业务模块,则可以复用fragment。 Fragment的生命周期跟Activity的生命周期十分相似 ,也有启动状态、运行状态、暂停状态、停止状态和销毁状态,但fragment比activity多了以下几个方法,具体如下:onAttach():fragment和activity建立关联时调用;onCreateView():fragment创建视图(加载布局)时调用;onActivityCreate():fragment相关联的activity已经创建完成时调用;onDestroyView():fragment关联的视图被移除时调用;onDetach():fragment和activity解除关联时调用。 创建Fragment与Activity类似,必须创建一个类继承自Fragment。创建NewListFragment类的实例代码如下: public class NewListPragment extends

Android开发之InstanceState详解

[亡魂溺海] 提交于 2019-12-02 19:35:40
本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState和onRestoreInstanceState。 关于这两个方法,一些朋友可能在Android开发很少用到,但在有时候掌握其用法会帮我们起到比较好的效果。 1. 基本作用简介: Activity的 onSaveInstanceState() 和 onRestoreInstanceState()并不是生命周期方法,它们不同于 onCreate()、onPause()等生命周期方法,它们并不一定会被触发。当应用遇到意外情况(如:内存不足、用户直接按Home键)由系统销毁一个Activity时,onSaveInstanceState() 会被调用。但是当用户主动去销毁一个Activity时,例如在应用中按返回键,onSaveInstanceState()就不会被调用。因为在这种情况下,用户的行为决定了不需要保存Activity的状态。通常onSaveInstanceState()只适合用于保存一些临时性的状态,而onPause()适合用于数据的持久化保存。 在activity被杀掉之前调用保存每个实例的状态,以保证该状态可以在onCreate(Bundle)或者onRestoreInstanceState(Bundle)