Android 中BaseActivty
Base接口
IBaseActivity
package liu.basedemo.base; /**
* 基类接口
* Created by 刘楠 on 2016/7/28 0028.23:05
*/
public interface IBaseActivity { /**
* 返回视图的布局(setContentView中使用)
* @return 返回视图的布局
*/
int bindLayout(); /**
* 初始化View(onCreate方法中调用)
*/
void initView(); /**
* 初始化数据(onCreate方法中调用)
*/
void initData(); /**
* 初始监听器(onCreate方法中调用)
*/
void initListener(); /**
* 暂停恢复刷新相关操作(onPause方法中调用)
*/
public void pause(); /**
* 暂停恢复刷新相关操作(onResume方法中调用)
*/
public void resume(); /**
* 暂停恢复刷新相关操作(onStop方法中调用)
*/
public void stop(); /**
* 销毁,释放资源等操作在(onDestory方法中谳用)
*/
public void destory();
}
BaseActivity
package liu.basedemo.base; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.LayoutRes;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.Window; import java.lang.ref.WeakReference; import liu.basedemo.MyApplication;
import liu.basedemo.R; /**
* Activity基类
* Created by 刘楠 on 2016/7/28 0028.23:02
*/
public abstract class BaseActivity extends AppCompatActivity implements IBaseActivity { /**
* 全局应用
*/
MyApplication mMyApplication;
/**
* 弱引用
*/
WeakReference<Activity> mTask; @Override
public void setContentView(@LayoutRes int layoutResID) {
super.setContentView(layoutResID);
} @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
/**
* 设置布局
*/ setContentView(bindLayout()); /**
* 抽象方法
*/
initView();
initData();
initListener(); mMyApplication =MyApplication.getInstance();
mTask = new WeakReference<Activity>(this);
/**
* 添加任务栈
*/
mMyApplication.pushTask(mTask);
} @Override
public void pause() {
super.onPause();
} @Override
public void stop() {
super.onStop();
} @Override
public void destory() {
super.onDestroy();
/**
* 过场动画
*/
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right); /**
* 移除任务栈
*/
mMyApplication.removeTask(mTask);
} @Override
public void startActivity(Intent intent) {
super.startActivity(intent);
/**
* 过场动画
*/
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
} @Override
public void startActivityForResult(Intent intent, int requestCode) {
super.startActivityForResult(intent, requestCode);
/**
* 过场动画
*/
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
}
}
Android 中BaseActivty的更多相关文章
- Android中的LinearLayout布局
LinearLayout : 线性布局 在一般情况下,当有很多控件需要在一个界面列出来时,我们就可以使用线性布局(LinearLayout)了, 线性布局是按照垂直方向(vertical)或水平方向 ...
- Android中BroadcastReceiver的两种注册方式(静态和动态)详解
今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来 ...
- Android中使用ExpandableListView实现微信通讯录界面(完善仿微信APP)
之前的博文<Android中使用ExpandableListView实现好友分组>我简单介绍了使用ExpandableListView实现简单的好友分组功能,今天我们针对之前的所做的仿微信 ...
- Android中ListView实现图文并列并且自定义分割线(完善仿微信APP)
昨天的(今天凌晨)的博文<Android中Fragment和ViewPager那点事儿>中,我们通过使用Fragment和ViewPager模仿实现了微信的布局框架.今天我们来通过使用Li ...
- Android中Fragment和ViewPager那点事儿(仿微信APP)
在之前的博文<Android中使用ViewPager实现屏幕页面切换和引导页效果实现>和<Android中Fragment的两种创建方式>以及<Android中Fragm ...
- Android中Fragment与Activity之间的交互(两种实现方式)
(未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...
- 【月入41万】Mono For Android中使用百度地图SDK
借助于Mono For Android技术,.Net开发者也可以使用自己熟悉的C#语言以及.Net来开发Android应用.由于Mono For Android把Android SDK中绝大部分类库都 ...
- mono for android中使用dapper或petapoco对sqlite进行数据操作
在mono for android中使用dapper或petapoco,很简单,新建android 类库项目,直接把原来的文件复制过来,对Connection连接报错部分进行注释和修改就可以运行了.( ...
- Android开发学习之路-Android中使用RxJava
RxJava的核心内容很简单,就是进行异步操作.类似于Handler和AsyncTask的功能,但是在代码结构上不同. RxJava使用了观察者模式和建造者模式中的链式调用(类似于C#的LINQ). ...
随机推荐
- 数论 - 筛法暴力打表 --- hdu : 12876 Quite Good Numbers
Quite Good Numbers Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit ...
- ASP.NET Core 1.0到底是什么?
ASP.NET Core1.0 是微软的下一代ASP.NET框架.我们将ASP.NET升级到最新版本我们会发现最高级的版本是ASP.NET 4.6对应的FrameWork版本是4.6.1. 那么很多人 ...
- 使用.NET 4.0+ 操作64位系统中的注册表
一.64位系统中的注册表 以 LocalMachine 中的启动项为例: 64位应用的注册表位置还是在: SOFTWARE\Microsoft\Windows\CurrentVersion\Run 而 ...
- 控件使用经验-MVP模式+控件封装
项目背景 几年前参与了一个面向学校的人事管理软件的开发,基于WinForm平台.今天主要想谈一谈其中关于控件的使用经验.这个项目我们大量使用了第三方控件.由于这个产品的生命周期很长,我们在设计时要考虑 ...
- linux 新建文件的命令
图形界面下就不用说了,终端下键入: touch test.java 就创建了一个新文件 test.java http://hovertree.com/menu/linux/ http://www.cn ...
- js一篇汇总
一.js的数据类型和变量 JavaScript 有六种数据类型.主要的类型有 number.string.object 以及 Boolean 类型,其他两种类型为 null 和 undefined. ...
- iOS阶段学习第15天笔记(NSDictionary与NSMutableDictionary 字典)
iOS学习(OC语言)知识点整理 一.OC中的字典 1)字典:是一个容器对象,元素是以键-值对(key-value)形式存放的,key和value是任意类型的对象,key是唯一的,value可以重复 ...
- 基于Erlang VM的函数式编程语言Elixir
Elixir官网:http://elixir-lang.org/ Elixir是一种函数式动态语言,用于构建可伸缩.易维护的应用程序. Elixir是基于Erlang VM的,其广为人知的特点是运行低 ...
- Saas
SaaS是Software-as-a-Service(软件即服务)的简称,随着互联网技术的发展和应用软件的成熟, 在21世纪开始兴起的一种完全创新的软件应用模式.它与“on-demand softwa ...
- 【算法和数据结构】_11_小算法_itoa、ftoa及字符串倒置
[1]main.c /**************************************************** * * 把整数按照进制数转换为相应进制的字符串 *(要考虑符号),比如 ...