您的位置:首页 > 移动开发 > Android开发

Android学习 - 退出整个应用方法

2013-04-22 22:00 190 查看
[摘要]在Android应用开发中,难免会遇到需要完全退出整个应用的时候,本文介绍Android中退出整个应用的方法,并提供详细的示例代码供参考。

在Android应用开发中,难免会遇到需要完全退出整个应用的时候,我在网上也看了一下,感觉通过广播是个很好的方法,在这里,我用了另外一个方法,简而言之,通过单例模式把每个Activity 的引用添加到一个全局链表中,每次退出程序调用System.exit(0)时,先调用链表中Activity 的finish方法。直接上代码:

View Row Code
1import
java.util.LinkedList;
2import
java.util.List;
3import

Android.app.Activity;
4import

Android.app.AlertDialog;
5import

Android.app.Application;
6import

Android.content.DialogInterface;
7import

Android.content.Intent;
8
9public

class
SysApplication
extends
Application {
10private

List<Activity>
mList
=
new
LinkedList<Activity>();

//用于存放每个Activity的List
11private

static
SysApplication instance;
//SysApplication实例
12
13private

SysApplication() {
//私有构造器,防止外面实例化该对象,
14}
15
16public

synchronized
static
SysApplication
getInstance() {
//通过一个方法给外面提供实例
17if
(null

== instance) {
18instance

=
new
SysApplication();
19}
20return
instance;
21}
22
23//
add Activity
24public

void
addActivity(Activity
activity) {
25mList.add(activity);
26}
27
28public

void
exit() {
//遍历List,退出每一个Activity
29try
{
30for
(Activity
activity : mList) {
31if
(activity
!=

null)
32activity.finish();
33}
34}

catch (Exception
e) {
35e.printStackTrace();
36}

finally {
37System.exit(0);
38}
39}
40
41@Override
42public

void
onLowMemory() {
43super.onLowMemory();
44System.gc();

//告诉系统回收
45}
46
47}
在每个Activity的onCreate中添加下面代码,把每个创建的Activity添加到List中管理:

View Row Code
1public

void
onCreate(Bundle
savedInstanceState) {
2super.onCreate(savedInstanceState);
3SysApplication.getInstance().addActivity(this);

//创建Activity时,添加到List进行管理。
4}
在我们需要退出程序的时候执行下面代码:

View Row Code
1SysApplication.getInstance().exit();

//调用退出方法


Android学习 - 退出整个应用方法(2)

2012-10-07
18:02 来源:csdn 作者:weidi1989 字号:T|T

[摘要]本文介绍Android中退出整个应用的方法,主要通过使用广播机制退出整个应用,并提供详细的示例代码供参考。

前面跟大家分享了通过建立Activity堆栈列表,把所有Activity通过继承基类或调用函数的方式记录下来,退出时逐一finish;今天再跟大家分享一下通过使用广播机制退出整个应用,我们首先自定义一个抽象的MyActivity继承系统的Activity,然后在这个自定义的MyActivity中添加退出的方法,然后在整个应用中的所有Activity都继承我们自定义的MyActivity,当我们需要完全退出的时候,就可以调用这个close()方法,实现完全退出,个人感觉比之前的那个方法更实用,更方便,好了,废话不多说,直接分享核心代码:

View Row Code
1public

abstract
class
MyActivity
extends
Activity {
2
3//
写一个广播的内部类,当收到动作时,结束activity
4private

BroadcastReceiver broadcastReceiver
=
new
BroadcastReceiver() {
5@Override
6public

void
onReceive(Context
context,
Intent intent) {
7close();
8}
9};
10
11@Override
12protected

void
onCreate(Bundle
savedInstanceState) {
13super.onCreate(savedInstanceState);
14//
在onCreate中注册广播
15IntentFilter
filter
=
new
IntentFilter();
16filter.addAction(Attribute.PAGENAME);
17registerReceiver(this.broadcastReceiver,
filter);
// 注册
18}
19
20/**
21*
关闭
22*/
23public

void
close() {
24Intent
intent
=
new
Intent();
25intent.setAction(Attribute.PAGENAME);

// 说明动作
26sendBroadcast(intent);//
该函数用于发送广播
27finish();
28}
29@Override
30protected

void
onDestroy() {
31super.onDestroy();
32unregisterReceiver(broadcastReceiver);//
在onDestroy注销广播。
33}
34}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: