前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >探究Android活动的小技巧

探究Android活动的小技巧

作者头像
Dream城堡
发布2018-12-13 16:23:28
5110
发布2018-12-13 16:23:28
举报
文章被收录于专栏:Spring相关Spring相关

探究Android活动的小技巧

1.找出当前的活动

当我们在查看别人的代码的时候可能不能第一眼就发现首次的活动是哪一个,我们可以通过以下的方法来找出当前的主活动是哪一个:

新建一个BaseActivity类:

代码语言:javascript
复制
package com.example.activitytest;

import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;


public class BaseActivity extends AppCompatActivity{

    private static final String TAG = "BaseActivity";
    @Override
    protected void onCreate( Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG,"当前的类:"+ getClass().getSimpleName());
   }
}

然后让其他的类继承这个类这样当我们启动程序的时候就可以在log日志中找出当前执行的是哪一个活动.

2.随时随地退出程序

新建一个ActivityController类:

代码语言:javascript
复制
package com.example.activitytest;

import android.app.Activity;

import java.util.ArrayList;
import java.util.List;

public class ActivityController  {


   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();
            }
            
        }
        
    }
}

然后修改BaseActivity类,如下:

代码语言:javascript
复制
package com.example.activitytest;

import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

public class BaseActivity extends AppCompatActivity{

    private static final String TAG = "BaseActivity";
    @Override
    protected void onCreate( Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG,"当前的类:"+ getClass().getSimpleName());
        ActivityController.addActivity(this);
    }


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

修改ThirdActivity如下:

代码语言:javascript
复制
package com.example.activitytest;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class ThirdActivity extends BaseActivity {
    private static final String TAG = "ThirdActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG, "Third中TaskID:"+getTaskId());

        setContentView(R.layout.third_layout);
        Intent intent = getIntent();
        final String extra_data = intent.getStringExtra("extra_data");
        //获取按钮
        Button button3 = (Button) findViewById(R.id.button_3);
        button3.setOnClickListener(new View.OnClickListener() {
            
            //调用finishAll()
            public void onClick(View v) {
                ActivityController.finishAll();
            // 杀掉当前进程的代码,保证程序完全退出
                android.os.Process.killProcess(android.os.Process.myPid());

            }

        });

    }
}

3.启动活动的最佳方法

SecondActivity添加如下代码:

代码语言:javascript
复制
 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);
        Log.d(TAG, "param1: "+data1);
        Log.d(TAG, "param2: "+data2);
        context.startActivity(intent);

    }

FirstActivity修改点击事件如下代码:

代码语言:javascript
复制
 //给secondActivity返回数据
            public void onClick(View v) {
                SecondActivity.actionStart(FirstActivity.this,"数据1","数据2");
            }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.11.15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档