这是一个很多很多人都 会遇到的问题,我也试过了很多方法,都不怎么好用。 比如: 代码如下: System.exit(0); 不行。 还有什么跳转到第一个activity,同
这是一个很多很多人都 会遇到的问题,我也试过了很多方法,都不怎么好用。
比如:
代码如下:
System.exit(0);
不行。
还有什么跳转到第一个activity,同时把栈顶的activity全部清除,最后再finish();还是不行。。不知道为什么。
这里是我自己的一个方法,效果非常好。
原理:在每个activity都注册一个广播接收器,用来接收关闭activity的广播。当需要退出程序的时候就发送一条关闭activity的广播,这样所有的activity都会接收到,然后所有activity都会自己finish了。
代码如下:
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;
public class SuperActivity extends Activity {
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();
}
}
}
代码如下:
package com.example.exitsystem;
import android.os.Bundle;
public class MainActivity extends SuperActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
需要退出程序的时候发送一条广播即可。
代码如下:
Intent intent = new Intent();
intent.setAction(SuperActivity.SYSTEM_EXIT);
sendBroadcast(intent);
--结束END--
本文标题: android中实现完全退出程序方法(退出所有activity)
本文链接: https://www.lsjlt.com/news/26699.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0