活动的最佳实践--第一行代码

来源:互联网 发布:晋业进销存软件 编辑:程序博客网 时间:2024/05/19 12:37

买了郭琳大神的书《第一行代码》,感觉还不错,这是书中的实践部分,对新手来说挺有用的,记下来以后忘了可以回来看。


活动的最佳实践


1、知晓当前是哪个活动

首先新建一个类BaseActivity继承自Activity,然后在BaseActivity中重写OnCreate()方法,如下:

package com.example.administrator.testactivity;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;public class BaseActivity extends AppCompatActivity {    public static final String TAG = "BaseActivity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Log.d(TAG,getClass().getSimpleName());    }}


2、随时随地退出程序

创建一个集合类对所有的Activity进行集中的管理

package com.example.administrator.testactivity.collector;import android.app.Activity;import java.util.ArrayList;import java.util.List;/** * Created by Administrator on 2016/10/20. */public class ActivityCollector {    public static List<Activity> activities = new ArrayList<Activity>();    //添加一个Activity    public static void addActivity(Activity activity){        activities.add(activity);    }    //移除出一个Activity    public static void removeActivity(Activity activity){        activities.remove(activity);    }    //关闭所有Activity    public static void finishAll(){        for (Activity activity : activities) {            if (!activity.isFinishing()){                activity.finish();            }        }    }}


3、启动活动的最佳写法,在SecondActivity中添加一个actionStart的方法,这个方法中完成了 intent的构建,另外SecondActivity中所需要的参数都是从actionStart中传递过来的。

package com.example.administrator.testactivity;import android.content.Context;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import com.example.administrator.testactivity.collector.ActivityCollector;public class SecondActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_second);        ActivityCollector.addActivity(this);    }    //启动该活动    public static void actionStart(Context context, String data1, String data2){        Intent intent = new Intent(context,MainActivity.class);        intent.putExtra("param1",data1);        intent.putExtra("param2",data2);        context.startActivity(intent);    }    @Override    protected void onDestroy() {        super.onDestroy();        ActivityCollector.removeActivity(this);    }}

启动SecondActivity时的代码:

SecondActivity.actionStart(MainActivity.this,"data1","data2");





0 0
原创粉丝点击