完美销毁当前活动

2017-04-23  本文已影响37人  gogoingmonkey

安卓系统为我们提供了销毁当前页面的方法——finish();但是很多时候,我们的安卓物理按键也可以直接back.

用户没有点击返回怎么销毁

  当用户没有点击某个按钮去销毁活动的时候,有个onPressBack()方法可以调用,把逻辑写到这个方法中。

知道自己当前在哪个Activity中

      创建一个BaseActiviy 的 java类。然后让他继承APPcompatActivity  让之前的那几个Activity 来继承这个baseactivity 并在这个BaseActivity 中重写oncreate 方法

Log.d("XX ",getclass.getSimpleName()); 再进入对应的活动就能看到了

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d("BaseActivity", "XXXXXXXX " +getClass().getSimpleName());
}

优雅退出

    活动的管理是任务栈的形式去实现的,所以,如果我开启A。B。C三个服务,需要按Back三次才能推出,
public class Collecter {
    static ArrayList<Activity> al = new ArrayList<Activity>();
    public static void addActivity(Activity activity) {
        al.add(activity);
    }
    public static void removeActivity(Activity activity) {
        al.remove(activity);
    }
    public static void removeAll() {
        for (Activity activity : al) {
            activity.finish();
        }
    }
}

在BaseaActivity中使用:

public class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Collecter.addActivity(this);
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Collecter.removeActivity(this); 
    }
}

在想要退出程序的地方直接Collector.removeAll();  当然可以在销毁所有活动的代码后面加上杀掉当前进程
android.os.Process.killProcess(android,os,Process.myPid());
.killProcess 这个方法是杀进程的方法,但是只能杀自己,不能杀别人的进程      .myPid() 方法可以获得当前进程的id

良好的代码风格

很多大一点的项目都是协同开发的,很多时候,需要传递数据。我们常规的比如从一个页面调到另一个,直接就写了,但是有时候,需要去问,去看对应的代码,所以对代码进行一次封装,就可以减少很多工作了:

public static void actionStart(Context  context, String aa, String bb) {
    Intent   i  = new Intent(context,SecondActivity.class);
    i.putExtra("gg",aa);
    i.putExtra("bb",bb);
    context.startActivity(i);
 }
SecondActivity.actionStart(MainActivity.this,"哈哈","wocao");

需要传递2个重要参数,但是这个时候那个活动不是我写的,2个方法,
1.去阅读他的代码.2.问他
如 活动1 要跳活动2在 活动2中封装一个static方法

上一篇 下一篇

猜你喜欢

热点阅读