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). ...
随机推荐
- 使用Qt installer framework制作安装包
一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...
- The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value. 错误的原因及解决方案
异常描述: 数据访问用EF,在数据库中用getdate()设置的默认值,程序中没有赋值. 出现异常. 此错误在百度上在我写此文之前没有多少解决方案,谷歌之等到以下两个有用的页: http://stac ...
- 【吐槽】IM群里几种我认为愚蠢的提问方式
一.“有人吗?” 你能得到一句[在,请说]的答复我就服了你,这样问的结果往往是等半天没一个人鸟你,悲观的你或者就此凄凉的退群了,感概人情冷暖的同时甚至开始怀疑人生:积极的你或者这才意识到~要不干脆说问 ...
- jquery输入数字随机抽奖特效
简介:jQuery自定义数值抽奖活动代码是一款点击开始按钮计算机会产生玩家输入范围内的随机数,点击停止按钮,将显示数字最终结果的效果. 效果展示 http://hovertree.com/texiao ...
- 炉石传说 C# 开发笔记 (法术篇)
炉石的设计,最核心的内容是法术效果. 法术卡牌,无疑是法术的集中体现,但是,法术效果除了在法术卡牌之外,也不除不在. 随从的战吼,亡语,奥秘的揭示等等都是法术效果的体现. 法术卡牌在炉石里面有很多种( ...
- asp.net动态生成按钮Button控件
1.动态生成button控件及响应服务端和客户端事件 void BindButtons(){ foreach (var item in items) { Button Btn = new Button ...
- Win7 电脑设置临时网络,无法加入网络;internet禁止网络共享
1.电脑的本地连接中的共享,被管理员禁用.网上试了一些方法,都不可行.最后想到修改注册表.我找到了注册表中的shared选项.将0修改为1.则实现了本地连接的共享. 2.但是即便如此,由本地连接分享出 ...
- 解决WindowsServer 2008 R2 未注册版一个小时自动强制关机
仅用来学习交流,请大家购买正版,尊重正版版权. 安装了win2008R2,试了很多激活方法,终于激活后,不知道什么原因,过了一段时间后,每隔一段时间就自动关机,查了一下,发现是 wlms.exe在作祟 ...
- Java在方法作用域内创建的内部类
在方法作用域内创建的内部类,用来实现一个接口 /** * Created by xfyou on 2016/11/3. * Java内部类演示 */ public class Parcel3 { pu ...
- Webform(文件上传)
1.HTML编码: <input type="file" /> 2.控件:FileUpload 它是用来选择要上传的文件,还需要一个按钮来将选中的文件上传到服务器上 s ...