簡體   English   中英

如何在運行應用程序時使其在每次啟動時都干凈啟動?

[英]How can i make my app when running it to start clean on every launch?

這是我在MainActivity.java中的onCreate

@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();
    }

initTTS用於使用文本進行語音轉換。

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

問題是,當我通過android-studio一遍又一遍地運行該應用程序時,該應用程序將開始清理/重置。 但是,當我在這種情況下在lg g3上一次又一次地在我的android設備上運行該應用程序時,我單擊了該應用程序圖標,因此每次它記住上一次操作時,有時只是一個TextView文本發生了變化,或者有時是文本變為了語音,所以有時我會看到更改后的文本,有時我會聽到最后一個語音。 就像記住最后的動作一樣。

我在一小時前嘗試將其添加到MainActivitiy.java中

public void onResume() {
        super.onResume();
        startActivity(new Intent(this, MainScree.class).addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
    }

但是MainScreen不存在,所以我不確定應該添加什么而不是它。 而且我也不確定這是否是正確的方法。

當您按下主屏幕按鈕時,應用程序從Resumed(可見)移動到暫停(部分可見),直到android需要另一個應用程序的內存/資源,然后移動到Stopped並銷毀,這表示您不是用戶友好或“ android方式”。

我們可以隨時使用

 @Override
    public void onPuase() {
        finish();
    }

但這會在以后的應用程序流程中引起很多問題。 Android Activity生命周期

編輯了::以實現數據清理而不會丟失流程

將此添加到清單文件到您希望每次清除的活動中: android:noHistory="true"
並覆蓋您的背部新聞:

@Override public void onBackPressed() { super.onBackPressed(); finish(); } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM