美文网首页
完美销毁当前活动

完美销毁当前活动

作者: gogoingmonkey | 来源:发表于2017-04-23 15:00 被阅读37次

安卓系统为我们提供了销毁当前页面的方法——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方法

相关文章

  • 完美销毁当前活动

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

  • 活动的生命周期

    我们知道Android中的活动是可重叠的。我们每启动一个新的活动,就会覆盖当前的活动,然后点击Back就会销毁最上...

  • 微信小程序 返回上一页不触发onHide()

    onHide是页面隐藏onUnload是页面销毁(返回上一页,当前页已经被销毁)

  • Activity的销毁

    对于一个单一的活动,按后退键,或者在活动中调用finish()方法,就可以将活动销毁,这里主要说一次销毁所有活动的...

  • iOS 记录不走dealloc的原因

    当视图销毁后,发现没有调用dealloc函数. 1.当前vc使用了NSTimer, 并没有对它进行销毁. 2.bl...

  • 军事冲突对加密货币有哪些影响

    以太坊网络当前已销毁192.47万枚ETH 据数据显 示,截止目前,以太坊网络总共销毁1,924,752.36枚E...

  • kerberos命令.md

    普通用户命令 登录(账号密码登陆) 通过keytab文件认证,获取用户princpal 查看当前生效票据 销毁当前...

  • 2018-03-30

    push下个页面时销毁当前的controllers A --->push 到B --->push到C 点击返回到A...

  • Android 退出登录功能的简单实现方法

    退出登录简单来说要做到两点:1.删除当前一些用户信息2.销毁之前的活动,重新回到登录界面 对于第一点 这个是要根据...

  • push之后销毁当前控制器

    解决同一个页面无限跳转的问题 在支付宝中有一个找能量的功能,找能量的页面可以跳转多次,且是同一个页面,但点击返回按...

网友评论

      本文标题:完美销毁当前活动

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