当我试图销毁活动所以没有痕迹将留在我的程序只是退出运行时为什么?

时间:2015-09-27 21:26:03

标签: java android android-studio

出于测试目的,我希望我的应用程序避免在我的Android设备上关闭它时留下任何痕迹。当我再次运行应用程序时,它应该从头开始,所有设置/变量都被清除/重置为初始设置。

所以我正在尝试使用noHistory标志。 这是我使用onCreate的主要活动的顶部:

public class MainActivity extends ActionBarActivity
{
    private static final int MY_DATA_CHECK_CODE = 0;
    TextToSpeech mTts;
    private String targetURL;
    private String urlParameters;
    private Button btnClick;
    private String clicking = "clicked";
    private String[] ipaddresses = new String[]{
        "http://192.168.1.5:8098/?cmd=nothing"};
    private String iptouse = "";
    private TextView text;
    private boolean connectedtoipsuccess = false;
    private int counter = 0;
    private NotificationCompat.Builder mbuilder;
    private Timer timer = new Timer();
    private TextView text1, text2, text3;
    private Button startButton;
    private Button pauseButton;
    private TextView timerValue;
    private long startTime = 0L;
    private Handler customHandler;
    long timeSwapBuff = 0L;
    private int servercheckCounter = 0;
    private byte[] checkServer = null;
    private boolean connectedSuccess = false;
    private TextView status, status1;
    private TextView uploadedfilescount;
    private int numberofuploadedfilescounter = 0;

    String a = null;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        startTime = SystemClock.uptimeMillis();
        serverChecksThread.start();
        status1 = (TextView) findViewById(R.id.textView3);
        timerValue = (TextView) findViewById(R.id.timerValue);
        uploadedfilescount = (TextView) findViewById(R.id.numberofuploadedFiles);
        uploadedfilescount.setText("Uploaded Files: 0")
        addListenerOnButton();
        initTTS();
    }

这是AndroidManifest.xml文件的内容

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.webservertest" >

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

我尝试做的是添加这一行:

android:noHistory =“true”我在这里添加了它:

<activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:noHistory="true">

然后我从android-studio运行程序一次然后在我的android设备上运行lg g3我按下O按钮。然后,当我再次从设备运行应用程序时,应用程序显示毫秒并关闭。

然后我需要更多2-3次来运行它直到它正在运行然后在某些情况下它会记住最后一些动作。例如,我听到它在我的MainActivity onCreate中说了些什么:

initTTS();

我用它来使用文字到语音:

public void initTTS() {
        Intent checkIntent = new Intent();
        checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
        startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
    }

或者,如果在我的应用程序中我向TextView添加文本,那么有时我会看到最后一次文本更改。

在我的MainActivity上,我现在覆盖onStop和onStart,但它们现在是空的,我还没有添加任何代码。

现在我要做的是点击我的设备O并关闭应用程序,当我再次从设备运行它时,它将被重置所有vars方法活动/重置。

1 个答案:

答案 0 :(得分:0)

O按钮通过@OnPause@OnResume方法处理, 把你的代码放在处理暂停你的应用程序,
但要小心这不是Android应用程序流程的意图
 暂停与离开应用程序不同。