如何完成Android应用程序?

jen*_*fer 32 android

我需要完成一个Android应用程序.为此我写了

@Override
public void onBackPressed() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Are you sure You want to exit")
        .setCancelable(false)
        .setPositiveButton("YES"),
        new DialogInterface.OnClickListener() {
            // On
            // clicking
            // "Yes"
            // button

            public void onClick(DialogInterface dialog,int id) {
                System.out.println(" onClick ");
                closeApplication(); // Close Application method called
            }
        })
        .setNegativeButton("NO"),
        new DialogInterface.OnClickListener() {
            // On
            // clicking
            // "No"
            // button
            public void onClick(DialogInterface dialog,int id) {
                dialog.cancel();
            }
        });

        AlertDialog alert = builder.create();
        alert.show();
    }

    private void closeApplication() {
        System.out.println("closeApplication ");
        this.finish();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如果在应用程序中没有完成任何活动,当我试图退出应用程序时,活动先完成并且应用程序没有退出..我尝试了2次退出此应用程序...我如何完成所有活动当我需要退出时的应用程序...或者是否有任何方法可以完成整个应用程序

Bar*_*ica 51

要关闭应用程序,请致电:

android.os.Process.killProcess(android.os.Process.myPid());
Run Code Online (Sandbox Code Playgroud)

否则,由于Android活动的特定生命周期,您无法确定应用程序是否已关闭/终止.

  • 这会关闭您的应用注册并启动的所有服务吗? (3认同)

Pin*_*nki 26

无论何时开始新的活动使用

myintent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(myintent);
Run Code Online (Sandbox Code Playgroud)

并在清单文件中提到该活动为

<activity android:name=".<Activity Name>" >
        <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
     <category android:name="android.intent.category.DEFAULT" />
     </intent-filter>
       </activity>
Run Code Online (Sandbox Code Playgroud)

  • 为什么这样做?请详细说明. (21认同)
  • 你能解释一下这个答案,我没有得到你 (3认同)

Sta*_*olm 17

把它放进你的onClick或者onBackPressed:

moveTaskToBack(true);
finish()
Run Code Online (Sandbox Code Playgroud)

  • moveTaskToBack 是做什么的? (2认同)

Kev*_*din 11

请先阅读Google Android Developer Advocate Reto Meier发布的这篇文章: 何时在Android应用程序中包含一个退出按钮(提示:从不)

什么是使您想要添加退出按钮的症状?如果您需要清除活动堆栈并始终使用特定的Activity重新启动,可能您只需要使用以下属性调整活动清单声明:android:clearTaskOnLaunch

  • 我不会那么肯定.在某些情况下,用户需要100%确定应用程序是否真正关闭.例如,当应用程序是安全的时候.如果应用程序仍在运行,则表示存在安全漏洞的可能性. (2认同)
  • 目前的智慧不是真正关闭应用程序而是让它们徘徊不远是一个不确定的过程,它的影响在很多情况下比用户调用闭包的缺点更糟糕.我理解需要保留使用后端服务的应用程序,例如通过GPS跟踪位置,播放媒体流,在后台下载或Google监控用户行为.然而,可用性的核心组成部分是用户感觉控制.即使我对Android有所了解,我也倾向于关闭一些应用程序并确定他们没有使用宝贵的资源. (2认同)

Ama*_*lam 9

Android是以这样的方式制作的,几乎没有曾经打开的应用程序被关闭.

在错误解释声明之前,请理解这一点.

"每当你退出应用程序时,Android都会保存应用程序正在执行的所有操作(称为其状态)并在后台推送应用程序,调用onStop()方法.这是应用程序的新状态,然后应用程序不在没有运行,但也没有从内存中刷新.每当你再次启动应用程序时,它就会从冻结状态恢复.只有当保存冻结应用程序的内存开始变满时,Android GC才会刷新应用".

从概念上讲,没有任何结果.当您在第一个活动中点击"后退"按钮时,Android会捆绑应用和数据,并将其冻结.