zoukankan      html  css  js  c++  java
  • Android中finish掉其它的Activity

    在Android开发时,一般情况下我们如果需要关掉当前Activity非常容易,只需要一行代码 this.finish;即可。
    那么,如果是想要在当前Activity中关掉其它的Activity应该怎么实现呢?
    比如更改了某个设定,程序需要重新运行并加载新的配置文件,就要用到restart或finish让程序重启。

    可以参考下面的代码:

    推荐使用第一种方法,因为finish掉一个Activity再启动该Activity比重启整个程序要快一些。

    1.对于简单的两个Activity,在B界面finish掉A界面: 先在A中将自己赋给test_a

    public class A_activity extends Activity {
    public static A_activity test_a = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    .....
    test_a = this;
    }
    }
    

    再在B中调用并finish掉test_a

    public class B_activity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    A_activity.test_a.finish(); 
    }
    }
    

      

    其它方法:先退出程序,再运行程序。

    2.通过ActivityManager重新运行程序

    ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE); 
    manager.restartPackage(packageName);
    

    3.或者这样退出并重新运行。

    //退出第一个Activity界面
    System.exit(0);
    //重新加载MainActivity界面实现刷新效果
    Intent intent = new Intent(Settings.this, MainActivity.class);
    startActivity(intent);
  • 相关阅读:
    计算机网络-数据结构-MAC帧头-IP头-TCP头-UDP头
    (考研)java网络编程
    多态(重点:方法的多态性和对象的多态性)
    JZOJ1497 景点中心 题解
    JZOJ1227 Coprime 题解
    JZOJ3966 Sabotage 题解
    JZOJ3056 数字 题解
    JZOJ3054 祖孙询问 题解
    【Luogu P2282】【JZOJ 4906】【NOIP2016提高组复赛】组合数问题 题解
    JZOJ4316【NOIP2015模拟11.5】Isfind 题解
  • 原文地址:https://www.cnblogs.com/colinliu/p/android-finish-activity.html
Copyright © 2011-2022 走看看