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的更多相关文章

  1. Android中的LinearLayout布局

    LinearLayout : 线性布局 在一般情况下,当有很多控件需要在一个界面列出来时,我们就可以使用线性布局(LinearLayout)了,  线性布局是按照垂直方向(vertical)或水平方向 ...

  2. Android中BroadcastReceiver的两种注册方式(静态和动态)详解

    今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来 ...

  3. Android中使用ExpandableListView实现微信通讯录界面(完善仿微信APP)

    之前的博文<Android中使用ExpandableListView实现好友分组>我简单介绍了使用ExpandableListView实现简单的好友分组功能,今天我们针对之前的所做的仿微信 ...

  4. Android中ListView实现图文并列并且自定义分割线(完善仿微信APP)

    昨天的(今天凌晨)的博文<Android中Fragment和ViewPager那点事儿>中,我们通过使用Fragment和ViewPager模仿实现了微信的布局框架.今天我们来通过使用Li ...

  5. Android中Fragment和ViewPager那点事儿(仿微信APP)

    在之前的博文<Android中使用ViewPager实现屏幕页面切换和引导页效果实现>和<Android中Fragment的两种创建方式>以及<Android中Fragm ...

  6. Android中Fragment与Activity之间的交互(两种实现方式)

    (未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...

  7. 【月入41万】Mono For Android中使用百度地图SDK

    借助于Mono For Android技术,.Net开发者也可以使用自己熟悉的C#语言以及.Net来开发Android应用.由于Mono For Android把Android SDK中绝大部分类库都 ...

  8. mono for android中使用dapper或petapoco对sqlite进行数据操作

    在mono for android中使用dapper或petapoco,很简单,新建android 类库项目,直接把原来的文件复制过来,对Connection连接报错部分进行注释和修改就可以运行了.( ...

  9. Android开发学习之路-Android中使用RxJava

    RxJava的核心内容很简单,就是进行异步操作.类似于Handler和AsyncTask的功能,但是在代码结构上不同. RxJava使用了观察者模式和建造者模式中的链式调用(类似于C#的LINQ). ...

随机推荐

  1. 前端scss的使用及gulp发布方式

    如标题所述,这篇博文是说scss以及gulp发布方式: 如果你没用过scss和gulp或不甚了解,你可以看看这篇博文,叙说的水平有限,各位看官大神见谅: 说scss之前,先来说说sass,sass是一 ...

  2. div模拟textarea实现高度自增长

    今天突然有位前端的朋友问我textarea怎么实现高度随内容自增长,我一下子懵了,首先想到的是用js改变textarea的高度,但是百度了很多参考代码效果都不是很理想. 因为之前实际项目中用的text ...

  3. REOBJECT 结构

    REOBJECT 结构   包含有关 rich edit 控件中的 OLE 或图像对象的信息. 语法 typedef struct _reobject { DWORD           cbStru ...

  4. 在Visual Studio中使用正则表达式匹配换行和批量替换

    系统环境:Windows 8.1 Enterprise Update 2 x64 开发环境:Mircosoft Visual Studio Ultimate 2013 Update 2 RC 问题:如 ...

  5. SQLServer存储过程中事务的使用

    create proc usp_Stock @GoodsId int, @Number int, @StockPrice money, @SupplierId int, @EmpId int, ), ...

  6. 驱动开发利器Microsoft Windows Driver Kit 7.1.0下载

    在Windows 2000 与Windows XP 系统采用是WINDDK来开发WINDOWS驱动程序,我手头也有WINDDK,可是从Windows Vista开始之后,一般采用Microsoft W ...

  7. 【Java每日一题】20161208

    package Dec2016; import java.util.List; public class Ques1208 { public static void add(List<? ext ...

  8. CenOS下firefox browser (火狐浏览器)无法播放网页音乐的解决方法

    新装载的Firefox或许无法播放网页音频,解决方法如下: 1. 下载并安装 flashplayer插件&&下载网址:https://get.adobe.com/flashplayer ...

  9. 从源码角度理清memcache缓存服务

    memcache作为缓存服务器,用来提高性能,大部分互联网公司都在使用.   前言    文章的阅读的对象是中高级开发人员.系统架构师. 本篇文章,不是侧重对memcache的基础知识的总结,比如se ...

  10. Web Service代理类生成工具

    本文原文连接:http://www.cnblogs.com/dengxinglin/p/3334158.html 之前一篇文章写 Web Service服务代理类生成及编译 , 通过命令行的方式可以直 ...