美文网首页
自学Android第五天——活动的一些小技巧

自学Android第五天——活动的一些小技巧

作者: GoldenR | 来源:发表于2019-04-14 21:42 被阅读0次

    知晓当前是在哪一个活动

    找到 项目名称——>app——>src——>main——>java——>包,右键new——>java class。我们命名为BaseActivity。内容如下:

    public class BaseActivityextends AppCompatActivity {

    @Override

        protected void onCreate(Bundle savedInstanceState){

    super.onCreate(savedInstanceState);

            Log.d("BaseActivity",getClass().getSimpleName());

        }

    @Override

        protected void onDestroy(){

    super.onDestroy();

            ActivityCollector.removeActivity(this);

        }

    }

    随时随地退出程序

    创建和上面一样的方法。名字命名为ActivityCollector,内容如下:

    public class ActivityCollector {

    public static Listactivities=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();

        }

    }

    把下面的代码添加到你要实现退出程序功能的活动中,例如我们在第三个活动添加该功能,代码如下:

    public class ThirdActivityextends AppCompatActivity {

    @Override

        protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_third);

            Button but_3=(Button)findViewById(R.id.but_3);

            //退出程序

            but_3.setOnClickListener(new View.OnClickListener() {

    @Override

                public void onClick(View v) {

                    ActivityCollector.finishAll();

                    //杀死当前进程

                    //android.os.Process.killProcess(android.os.Process.myPid());

                }

            });

        }

    你可以选择在销毁所有活动的代码后面再加上杀掉当前进程的代码,以保证程序完全退出,杀掉进程的代码在代码前加了注释的。

    启动活动的最佳写法

    前面见过用Intent进行跳转,这样没问题。但是在真正的项目开发中经常会有对接的问题出现。这时我们换一种写法,就可以解决这种窘境。

    例如我们修改SecondActivity中的代码,如下所示:

    public class SecondActivityextends BaseActivity {

        //启动活动(最佳方法)

        public static void actionStart(Context context,String data1,String data2){

            Intent intent=new Intent(context,SecondActivity.class);

            intent.putExtra("param1",data1);

            intent.putExtra("param2",data2);

            context.startActivity(intent);

        }

    //其他的方法用点表示

    。。。

    }

    现在我们只需要在FirstActivity中的onClick() 方法里添加SecondActivity.actionStart(FirstActivity.this,"data1","data1");这样一目了然,你可以清晰地知道启动SecondActivity需要传递哪些数据。

    相关文章

      网友评论

          本文标题:自学Android第五天——活动的一些小技巧

          本文链接:https://www.haomeiwen.com/subject/debswqtx.html