Activity使用技巧
来源:互联网 发布:淘宝2015年销售额多少 编辑:程序博客网 时间:2024/05/17 23:20
知晓当前是在哪一个活动
当我们需要看别人写的源码,但是不知道启动的是哪一个活动,就可以通过下面的方式。
新建BaseActivity类继承AppCompatActivity,使所有活动继承BaseActivity类
import android.support.v7.app.AppCompatActivity;import android.util.Log;public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //打印活动类名 Log.d("BaseActivity", getClass().getSimpleName()); } @Override protected void onDestroy() { super.onDestroy(); }}
销毁所有活动
当用户想要退出程序,可能需要连按多次back键,而直接按home键只是把程序挂起,并没有退出,故需要实现一个注销(退出)的功能
1. 使用一个集合类对应用的所有活动进行管理
import android.app.Activity;import java.util.ArrayList;import java.util.List;public class ActivityCollector { public static List<Activity> activities = new ArrayList<>(); //添加 public static void addActivity(Activity activity) { activities.add(activity); } //移除 public static void removeActivity(Activity activity) { activities.remove(activity); } //全部销毁 public static void finishAll() { for (Activity activity : activities) { if (!activity.isFinishing()) { activity.finish(); } } }}
2.在BaseActivity的onCreate中将创建的activity加入集合,在onDestroy中将要销毁的activity从集合中删除(所有活动继承自BaseActivity)
import android.support.v7.app.AppCompatActivity;import android.util.Log;public class BaseActivity extends AppCompatActivity { @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); }}
3. 在需要退出程序的地方,调用finishAll关闭所有活动,并杀掉当前进程
ActivityCollector.finishAll(); android.os.Process.killProcess(android.os.Process.myPid());
Activity传递数据
当别人需要向你写的activity传递数据,却又不清楚所需参数,要么去看源码,要么向你询问,对人对己都不方便,下面提供一种写法
1. 暴露静态方法actionStart,完成intent构建和跳转,在参数中体现所需的数据
public static void actionStart(Context context, String data1, String data2) { Intent intent = new Intent(context, CurrentActivity.class); intent.putExtra("param1", data1); intent.putExtra("param2", data2); context.startActivity(intent); }
2.启动CurrentActivity并传递数据就可以这样写
CurrentActivity.actionStart(this, "data1", "data2");
0 0
- Activity使用小技巧
- Activity之使用技巧
- Activity使用技巧
- Activity使用小技巧(持续更新)
- 2.3 Activity的使用技巧汇总
- Android关于Activity的一些使用和全局管理技巧
- Intent启动activity之FLAG_ACTIVITY相关行为使用技巧
- 非activity跳activity技巧
- 一些Activity小技巧
- 一些Activity小技巧
- 关于Activity一些技巧
- Activity常用技巧总结
- Activity的实践技巧
- Activity的常用技巧
- Activity 的一些技巧
- 安卓学习笔记一 —— Activity的一些使用技巧
- Android使用技巧------Activity中怎么样在子线程和UI线程中来回自如
- android_Activity系列 activity一些技巧
- audiobooks shared resource
- 动态规划测试test20170506
- Cocos Creator常用技巧总结
- hdoj2031 任意进制转换
- 建造者模式【Builder Pattern】
- Activity使用技巧
- httpclient访问未知证书的https网站
- Echarts入门--直方图、折线图
- 【GraphLite】同步图运算初试-数三角形
- codeforcesPlayrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2)B题B. T-shirt buying
- 传统物体检测
- 蓝桥杯
- 加密解密(四)--Java中的Hash算法
- centos6.6下mysql-5.6.21源码安装