首页 文章

按两次后退按钮退出AIR android应用程序

提问于
浏览
0

我最近在很多Android应用和游戏中都注意到了这种模式:当点击后退按钮“退出”应用程序时,Toast会出现类似“再次按BACK退出”的消息 . 经过很长一段时间的搜索,我发现一个ANE扩展在我的应用程序中显示了一个很好的吐司,我已经测试了它,单击后退按钮后工作正常,现在我想在单击后退按钮两次后关闭我的应用程序,延迟3秒,使用强制代码退出NativeApplication.nativeApplication.exit(0);

ANE扩展:https://github.com/mateuszmackowiak/NativeDialogs

我的代码:

import flash.ui.Keyboard;
import flash.events.KeyboardEvent;
import pl.mateuszmackowiak.nativeANE.notifications.Toast;

stop();

NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN, CheckKeypress);

function CheckKeypress(event: KeyboardEvent): void {
    switch (event.keyCode) {
        case Keyboard.BACK:
            trace("Back key is pressed.");
            event.preventDefault();
            event.stopImmediatePropagation();
            Toast.show("Press Back again to exit", Toast.LENGTH_LONG);
            break;

        case Keyboard.MENU:
            trace("Menu key is pressed.");
            break;

        case Keyboard.SEARCH:
            trace("Search key is pressed.");
            break;
    }
}

2 回答

  • 0

    您可以在活动中使用onBackPressed() . 当用户按下后退按钮时 . 将调用此方法 . 我认为以下代码可以帮助您 .

    @Override
    public void onBackPressed() {
        if(initialClickTime == 0){
            initialClickTime = System.currentTimeMillis();
            //Toast with msg press again to exit
        }else{
           if ((System.currentTimeMillis() - initialClickTime)/1000 == 3){
               finish();
           }else{
               initialClickTime = 0;
               //Toast with msg press again to exit
           }
        }
    
  • 0

    在MainActivity中试试这个 . 可能有帮助 .

    @Override
    public void onBackPressed() {
        finishAffinity();
    }
    

相关问题