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). ...
随机推荐
- [转]virtualenv建立多个Python独立开发环境
不同的人喜欢用不同的方式建立各自的开发环境,但在几乎所有的编程社区,总有一个(或一个以上)开发环境让人更容易接受. 使用不同的开发环境虽然没有什么错误,但有些环境设置更容易进行便利的测试,并做一些重复 ...
- [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(1)
前面俩种实现中,很多内部细节都无法知道,微软的框架也是为了屏蔽具体实现,只让我们关注接口.但是人都是充满好奇的,依赖注入到底是怎么实现的呢? 微软又有怎样的实现呢?下面就为大家一一呈现(说实话,代码真 ...
- 关于NPOI
1,使用using(声明对象);using让局部对象失效,使用它时,要么其包含的类实现IDispose接口,要么他的父类实现IDispose接口. 2,模糊查询:%代表0到多个任意字符:_代表一个任意 ...
- [DBW]js获取当前时间(昨天、今天、明天)
开发过程中某些前台页面的时间控件我们需要给默认当前时间,jquery可以轻松的帮我们实现,代码如下 1 //昨天的时间 2 var day1 = new Date(); 3 day1.setTime( ...
- EasyUI-加载完Html内容样式渲染完成后显示
等待页面的css样式加载完毕,Html内容加载完毕,样式生成后再进行展示,避免一开始加载内容后,逐渐渲染样式造成的不良视觉效果,增强用户体验. 新增base-loading.js文件,代码如下 //获 ...
- 2016 长春东北赛---Coconuts(离散化+DFS)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5925 Problem Description TanBig, a friend of Mr. Frog ...
- 袋鼠过河---DP
题目:一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远,每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5, ...
- 泛函编程(26)-泛函数据类型-Monad-Applicative Functor Traversal
前面我们讨论了Applicative.Applicative 就是某种Functor,因为我们可以用map2来实现map,所以Applicative可以map,就是Functor,叫做Applicat ...
- hadoop fs 命令
1,hadoop fs –fs [local | <file system URI>]:声明hadoop使用的文件系统,如果不声明的话,使用当前配置文件配置的,按如下顺序查找:hadoop ...
- 控制器层(Controllers)
本章译者:@freewind 业务逻辑代码通常位于模型(model)层.客户端(比如浏览器)无法直接调用其中的代码,所以模型对象提供的功能,必须作为资源以URI方式暴露给外部. 客户端使用HTTP协议 ...