源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

android中实现完全退出程序方法(退出所有activity)

  • 时间:2022-06-28 23:53 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:android中实现完全退出程序方法(退出所有activity)
这是一个很多很多人都 会遇到的问题,我也试过了很多方法,都不怎么好用。 比如:
[u]复制代码[/u] 代码如下:
System.exit(0);
不行。 还有什么跳转到第一个activity,同时把栈顶的activity全部清除,最后再finish();还是不行。。不知道为什么。 这里是我自己的一个方法,效果非常好。 原理:在每个activity都注册一个广播接收器,用来接收关闭activity的广播。当需要退出程序的时候就发送一条关闭activity的广播,这样所有的activity都会接收到,然后所有activity都会自己finish了。
[u]复制代码[/u] 代码如下:
package com.example.exitsystem; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; /**  * 所有activity都继承此类,同时也就等于注册了广播,  * 当需要完全退出系统的时候就可以发送广播,  * action为com.example.exitsystem.system_exit(自定义),  * 这样就可以随时退出所有的activity了  * @author LinZhiquan  *  */ public class SuperActivity extends Activity {  /** 广播action */  public static final String SYSTEM_EXIT = "com.example.exitsystem.system_exit";  /** 接收器 */  private MyReceiver receiver;    @Override  protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);      //注册广播,用于退出程序   IntentFilter filter = new IntentFilter();   filter.addAction(SYSTEM_EXIT);   receiver = new MyReceiver();   this.registerReceiver(receiver, filter);  }    @Override  protected void onDestroy() {   //记得取消广播注册   this.unregisterReceiver(receiver);   super.onDestroy();  }    private class MyReceiver extends BroadcastReceiver {   @Override   public void onReceive(Context context, Intent intent) {    finish();   }  } }
[u]复制代码[/u] 代码如下:
package com.example.exitsystem; import android.os.Bundle; /**  * 普通activity, 继承SuperActivity  * @author LinZhiquan  *  */ public class MainActivity extends SuperActivity {     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);     } }
需要退出程序的时候发送一条广播即可。
[u]复制代码[/u] 代码如下:
        Intent intent = new Intent();         intent.setAction(SuperActivity.SYSTEM_EXIT);         sendBroadcast(intent);
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部