簡體   English   中英

在活動之間切換非常慢

[英]Switching Between Activities Is Very Slow

我正在嘗試創建一個更改屏幕上活動的按鈕。 它會按預期更改活動,但速度有點慢。 變化發生在一秒鍾的延遲。 發生此延遲時,我可以再次使用該按鈕,如果您執行該操作,則會打開兩次。 但這是有趣的部分,第二個活動上的按鈕重新打開第一個沒有那個問題,因為它使用了finish()函數。

我確定這不會發生,因為我的手機或我的應用程序的任何其他功能。 我的手機可以在更復雜的應用程序(如Whatsapp)上更快地更改活動,我的應用程序只有一個按鈕可以更改每項活動的活動。

編輯:我解決了多重問題。 單擊后我禁用了按鈕,直到用戶返回主活動。 我更新了代碼以顯示我用來解決它的代碼。 但我仍然有“慢活動切換”問題。

我的主要活動:

public static Button button_start;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    button_start = findViewById(R.id.button_start);
    configureStartButton();
}
@Override
protected void onResume()
{
    super.onResume();
    button_start.setEnabled(true);
}

private void configureStartButton() {
    button_start.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View view) {
            button_start.setEnabled(false);
            startActivity(new Intent(MainActivity.this, SettingsActivity.class));
        }
    });
}

SettingsActivity(第二個活動):

private Button button_menu;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_settings);

    button_menu = (Button) findViewById(R.id.button_menu);
    button_menu.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View view) {
            finish();
        }
    });
}

如果使用RxJava,則可以使用debounce()方法來避免多次單擊。

要么

單擊操作后,在很短的時間內禁用該按鈕

long TIME = 1 * 1000;
button_start.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View view) {
           button_start.setEnabled(false);
           new Handler().postDelayed(new Runnable() {
               @Override
               public void run() {
                  button_start.setEnabled(true);
               }
           },TIME);
           startActivity(new Intent(MainActivity.this, SettingsActivity.class));
        }
    });

暫無
暫無

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

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