我想重写onbackpressed(),并且在所有活动中都有此代码

int backpress=0;
public void onBackPressed(){
    backpress = (backpress + 1);
    if (backpress>1) {
        this.finish();
    }else{
        Toast.makeText(getApplicationContext(), R.string.finish, Toast.LENGTH_SHORT).show();
    }

}

但如果可能的话,我只想重写一次函数。正确的方法是什么?

最佳答案

创建一个基本活动并在那里定义此方法。喜欢

public class BaseActivity extends Activity {
    private int backpress = 0;

    @Override
    public void onBackPressed() {
        backpress = (backpress + 1);
        if (backpress > 1) {
            this.finish();
        } else {
            Toast.makeText(getApplicationContext(), R.string.finish,
                    Toast.LENGTH_SHORT).show();
        }
    }
}

并在活动中扩展此基本活动而不是活动。喜欢
// Just override BaseActivity instead of Activity class.
public class MyActivity extends BaseActivity {
    // Do you task
}

关于android - 如何正确地执行全局onBackPressed()覆盖?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24781130/

10-11 00:44