android技巧(一):如何方便知晓当前Activity?如何管理应用中的Activity?如何最佳的启动一个Activity?
1、如何方便知晓当前Activity?
可以不看代码根据当前界面就知道界面所在Activity的写法:
建立BaseActivity,继承自Activity,在BaseActivity的OnCreate方法中打印当前Activity的名字。之后使项目中所用Activity继承BaseActivity。
public class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("BaseActivity",getClass().getSimpleName());
}
}
2、如何管理应用中的Activity?
(1)建立一个集合类对应用中所有Activity进行管理:
class ActivityCollector{
public static List<Activity> activitys=new ArrayList<Activity>();
//添加activity
public static void addActivity(Activity activity){
activitys.add(activity);
}
//移除activity
public static void removeActivity(Activity activity){
activitys.remove(activity);
}
//结束掉所有activity
public static void finishAll(){
for(Activity activity:activitys){
if(!activity.isFinishing()){
activity.finish();
}
}
}
(2)在之前的BaseActivity中加入:
public class TestActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
在需要完全退出程序时只需要调用ActivityCollector.finishAll()即可。
3、如何最佳的启动一个Activity?
当要从当前Activity跳转到Activity b需要携带一些数据时,以下方法可以方便知道Activity b需要的数据有哪些:
在要跳转到的Activity中加入如下方法,当需要进行页面跳转时不直接使用intent跳转而是调用目标Activity中的actionStart方法即可。
public static void actionStart(Context context,Object ...data1){
Intent in=new Intent(context,TurnToActivityName);
in.putExtra("param1",(String)data1[0]);
context.startActivity(in);
}
android技巧(一):如何方便知晓当前Activity?如何管理应用中的Activity?如何最佳的启动一个Activity?的更多相关文章
- 【Android Developers Training】 15. 启动一个Activity
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- Android学习路线(十二)Activity生命周期——启动一个Activity
DEMO下载地址:http://download.csdn.net/detail/sweetvvck/7728735 不像其他的编程模式那样应用是通过main()函数启动的.Android系统通过调用 ...
- Android 启动一个Activity的几种方式
启动一个Activity的几种方式在Android中我们可以通过下面两种方式来启动一个新的Activity,注意这里是怎么启动,而非启动模式!分为显示启动和隐式启动! 1.显式启动,通过包名来启动,写 ...
- Android学习路线(十三)Activity生命周期——暂停和恢复(Pausing and Resuming )一个Activity
在正常使用应用的过程中.前台的activity在一些时候会被其它的组件遮挡,导致这个activity暂停.举个样例.当一个半透明的activity被打开(比如一个dialog样式的activity), ...
- 【安卓面试题】在一个Activity启动另一个Activity和在Service中启动一个Activity有什么区别
在Activity中可以直接使用Intent启动另一个Activity 显式Intent intent = new Intent(context, activity.class) 隐式 Intent ...
- 通过命令启动一个activity(am pm 命令)
一.am的含义是activityManager 主要作用是启动activity.service .broadcast 1.通过adb命令启动acitvity,首先需要设置activity 的 e ...
- 启动一个Activity的几种方式
在Android中我们可以通过下面两种方式来启动一个新的Activity,注意这里是怎么启动,而非 启动模式!!分为显示启动和隐式启动! 1. 显式启动:通过包名来启动,写法如下: ①最常见的: st ...
- 隐式意图启动一个Activity
隐式意图是通过指定一组动作或者属性实现,主要用于跨应用使用. 1.创建一个意图对象 Intent intent = new Intent(); 2.设置意图过滤器 intent.setAction(& ...
- 显式意图启动一个Activity
显式意图主要是通过指定包名和类名开启一个组件,主要用于安全性要求高的,且不想被其他应用开启,可以不配置应用过滤器. 1.创建意图对象 Intent intent = new Intent(); 2.指 ...
随机推荐
- [课程设计]Scrum 1.4 多鱼点餐系统开发进度(点餐页面框架布置)
Scrum 1.4 多鱼点餐系统开发进度 (点餐页面框架布置) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系 ...
- HDU 5686:2016"百度之星" - 资格赛 Problem B
原文链接:https://www.dreamwings.cn/hdu5686/2645.html Problem B Time Limit: 2000/1000 MS (Java/Others) ...
- Unity3D Function Not Supported - Unity动画事件提示不支持的解决方法
把脚本放在所有组件的最上面 然后刷新一下就好了 如果还是显示不支持就是参数问题.比如不支持bool参数,但支持string参数. 所以最好用无参数的
- ajax完整结构
$.ajax({ url:"服务器", data:{"key":所传数据}, type:"post", dataType:"jso ...
- 《BI那点儿事—数据的艺术》理解维度数据仓库——事实表、维度表、聚合表
事实表 在多维数据仓库中,保存度量值的详细值或事实的表称为“事实表”.一个按照州.产品和月份划分的销售量和销售额存储的事实表有5个列,概念上与下面的示例类似. Sate Product Mouth U ...
- Gitblit Go
1.Download the "Gitblit Go" package from the www.gitblit.com 2.UnZip the package 3.Open th ...
- Knockout 新版应用开发教程之创建view models与监控属性
最近抽出点时间研究MVVM,包括司徒正美的avalon,google的angular,以及Knockout,博客园Tom的Knockout指南 时隔2年了,ko更新了不少,所以文档也相应的变化了,所以 ...
- 基于gulp 的前端自动化构建方案总结
一,基础篇 先安装nodejs 使用淘宝镜像安装tnpm 安装 cnpm 插件:npm install -g cnpm --registry=https://registry.npm.taobao.o ...
- velocity常用语句速查表
velocity常用语句 * 变量定义 #set($directoryRoot = "www" ) * #if($!list.size() != 0) //判断list不为空 #f ...
- poj3301Texas Trip(三分)
链接 这题还真没看出来长得像三分.. 三分角度,旋转点. 最初找到所有点中最左边.右边.上边.下边的点,正方形边长为上下距离和左右距离的最大值,如图样例中的四个点(蓝色的),初始正方形为红色的正方形. ...