首页 > 代码库 > 常用关于活动的实践技巧
常用关于活动的实践技巧
1 //知晓当前是在哪一个活动 2 /* 新建一个BaseActivity类(Java class), 继承自AppCompatActivity 3 * 重写 onCreate()方法,已有的活动无需再继承自AppCompatActivity, 而是继承自BaseActivity,当跳转到某个活动界面,Toast消息框就会显示该活动名称 4 */ 5 package com.example.activitytest; 6 7 import android.app.Activity; 8 import android.os.Bundle; 9 import android.support.annotation.Nullable;10 import android.support.v7.app.AppCompatActivity;11 import android.util.Log;12 import android.widget.Toast;13 14 /**15 * Created by admin on 2017/1/22.16 */17 18 public class BaseActivity extends AppCompatActivity {21 @Override22 protected void onCreate(@Nullable Bundle savedInstanceState) {23 super.onCreate(savedInstanceState);24 25 //采用Toast消息提示的方式, 显示当前是哪个活动名26 Toast.makeText(BaseActivity.this, getClass().getSimpleName(), Toast.LENGTH_SHORT).show();27 }
1 /* 随时随地退出程序 2 * 实现ActivityCollector类作为活动管理器 3 */ 4 package com.example.activitytest; 5 6 import android.app.Activity; 7 8 import java.util.ArrayList; 9 import java.util.List;10 11 /**12 * Created by admin on 2017/1/22.13 */14 15 public class ActivityCollector {16 /*17 通过一个List来暂存活动18 */19 public static List<Activity> activities = new ArrayList<>();20 //提供一个addActivity()方法用于从List中移除活动.21 public static void addActivity(Activity activity) {22 activities.add(activity);23 }24 public static void removeActivity(Activity activity) {25 activities.remove(activity);26 }27 28 //最后提供了一个finishAll()方法用于将List中存储的活动全部销毁掉29 //不管在什么地方想退出程序,只需要调用ActivityCollector.finishAll(),就可以了30 public static void finishAll() {31 for (Activity activity : activities) {32 if (!activity.isFinishing()) {33 activity.finish();34 }35 }36 }38 }39 40 //在BaseActivity类再修改一下代码41 package com.example.activitytest;42 43 import android.app.Activity;44 import android.os.Bundle;45 import android.support.annotation.Nullable;46 import android.support.v7.app.AppCompatActivity;47 import android.util.Log;48 import android.widget.Toast;49 50 /**51 * Created by admin on 2017/1/22.52 */53 54 public class BaseActivity extends AppCompatActivity {55 56 @Override57 protected void onCreate(@Nullable Bundle savedInstanceState) {58 super.onCreate(savedInstanceState);59 //表明将 当前创建 的活动添加到活动管理器中.60 ActivityCollector.addActivity(this);61 Toast.makeText(BaseActivity.this, getClass().getSimpleName(), Toast.LENGTH_SHORT).show();62 }63 @Override64 protected void onDestroy() {65 super.onDestroy();66 ActivityCollector.removeActivity(this);67 }68 }
1 /* 启动活动的最佳写法 2 * 会遇到问题: 在自己负责的部分需要启动SecondActivity这个活动的功能, 3 * 却不清楚这个活动需要传递那些数据(项目中接手别人的代码) 4 * 修改SecondActivity中的代码 5 */ 6 public static void actionStart(Context context, String data1, String data2) { 7 Intent intent = new Intent(context, SecondActivity.class); 8 intent.putExtra("param1", data1); 9 intent.putExtra("param2", data2);10 context.startActivity(intent);11 }12 13 /* 这样,即使不用阅读SecondActivity中代码,不去询问负责SecondActivity编14 *写的同事, 也可以非常清晰的直达启动SecondActivity需要传递哪些数据. 15 *此时在活动FirstActivity中启动SecondActivity只需要一小行代码16 */17 SecondActivity.actionStart(FirstActivity.this, "data1", "data2");
学习书籍:《第一行代码》
常用关于活动的实践技巧
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。