前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从0系统学Android--2.6 Activity 的最佳实践

从0系统学Android--2.6 Activity 的最佳实践

作者头像
开发者
发布2019-12-26 15:41:43
5180
发布2019-12-26 15:41:43
举报

从0系统学Android--2.6 Activity 的最佳实践

点击下方「阅读原文」查看完整目录

本系列持续更新中….

实践中的技巧

2.6.1 知晓当前是在哪个 Activity

这个其实很简单,就是新建一个 BaseActivity ,然后让这个类继承 AppCompatActivity,并重写 onCreate() 方法:

代码语言:javascript
复制
public class BaseActivity extends AppCompatActivity{

  @Override
  protected void onCreate(Bundle saveInstanceState){
    super.onCreate(saveInstanceState);
    Log.e("BaseActivity",getClass().getSimpleName());
  }
}

这样再让我们的每个 Activity 都继承自这个 BaseActivity ,这样每次打开一个页面就会打印这个页面的类名了。

2.6.2 随时随地退出程序

如果启动了好几个 Activity,那么如何退出程序呢?还有点多次返回键吗?

解决思路:专门写一个管理所有 Activity 的类。

代码语言:javascript
复制
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();
      }

    }
    activities.clear();
  }
}

然后修改 BaseActivity 代码

代码语言:javascript
复制
@override
protected void onCreate(Bundle saveInstanceState){
  super.onCreate(saveInstanceState);
  Log.e("BaseActivity",getClass().getSimpleName());
  ActivityCollector.addActivity(this);
}

@Override
protected void onDestroy(){
  super.onDestroy();
  ActivityCollector.removeActivity(this);
}

当然我们也可以在销毁所有 Activity 代码后面再加上杀掉当前进程的代码,保持程序完全退出,杀掉进程代码:

代码语言:javascript
复制
android.os.Process.killProcess(android.os.Process.myPid());

这个方法只能杀掉当前的进程,无法杀掉其他程序。

启动 Activity 的最佳写法

比如要启动 Acitivity A,就在 A 中添加方法

代码语言:javascript
复制
public static void actionStart(Context context,String data1,String data1){
  Intent intent = new Intent(context,ActivityA.class);
  intent.putExtra("param1",data1);
  intent.putExtra("param2",data2);
  context.startActivity(intent);
}

下一节开始学习 UI 布局内容!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Android开发者家园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 从0系统学Android--2.6 Activity 的最佳实践
    • 2.6.1 知晓当前是在哪个 Activity
      • 2.6.2 随时随地退出程序
        • 启动 Activity 的最佳写法
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档