2017-01-21 13 views
0

正在运行一个简单的应用程序,该应用程序在打开时会打开/关闭Wifi。以下是代码。我希望应用程序在任务执行后退出,因此我试图在最后添加finish()或System.exit(0)。它工作正常,但当我检查概述按钮时,我仍然可以看到该应用程序处于运行状态,我需要刷卡停止应用程序。 [我的意思是第三个按钮显示正在运行的应用程序为缩略图]完成后不停止的Android应用程序

import android.content.Context; 
import android.net.wifi.WifiManager; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 


public class MainActivity extends AppCompatActivity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
    if(wifiManager.isWifiEnabled()){ 
    wifiManager.setWifiEnabled(false); 
    } 
    else{ 
    wifiManager.setWifiEnabled(true); 
    } 
    finish(); 
} 
} 
+0

为什么你在乎它是否继续运行?实际上你是不是希望它出现在最近的名单中? http://stackoverflow.com/questions/3762763/how-to-remove-application-from-recent-application-list – weston

回答

1

完成将结束活动。这与结束应用程序不一样。 Exit()并没有真正退出应用程序,并且无论如何将是一个脏关闭,而不是一个干净的关闭(所以它可能会导致除了一个简单的应用程序以外的任何问题)。 Android的确写了不允许你这样做。

但是,概述并不只是显示在内存中运行的应用程序。它显示任何正在运行或正在运行的应用程序,并且如果将它从页面运行的应用程序中分页出来,将以最近的意图重新启动它。所以,事情确实按照你自己的想法工作,或者像在传统计算机上一样。我也不是特别喜欢它,但你最好学习并理解它与之对抗的原因。

+0

随机currveball。有没有办法杀死Android – peter

+0

中的应用程序进程不是我最后一次查看的时间(肯定是在2014年左右)。您可以通过一些工作让自己脱离最近的菜单。但是,这并不意味着Android不会让你在内存中,如果它足够,并且不会重新启动一个Activity,而不是在下次调用时重新加载(这意味着静态变量可能不会被重新初始化但保持其旧值)。 –

0

使用finishAndRemoveTask(),从API 21开始可用。它将从最近的应用程序列表中删除应用程序。