2017-04-17 4 views
0

現在のアンドロイド版でonPause/onStop(バックプレスが処理されます)で終了するとアクティビティが表示されます。私はユーザーが何らかの評価をする必要があるシナリオを持っています。評価を残す前にユーザーに警告が表示されるようにする必要があります。私はインターネット上でほとんど例を見てバックエンド/キーガードについて話しているが、ユーザーが間違ってホームボタンをクリックしたりアクティビティを終了しようとするとダイアログを表示する必要がある。コードの下現在のアンドロイド版のonPause/onStop(バックプレスが処理されます)で終了するとアクティビティが表示されるようにする方法

あなたはホームキー押下で、データを保存することができます

new OnKeyListener() { 

       @Override 
       public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
        // TODO Auto-generated method stub 

        if(keyCode == KeyEvent.KEYCODE_HOME){ 
         //do something 
        } 
        return false; 
       } 
      }); 
+0

誤ってホームボタンを押した場合でも、ユーザーは同じアクティビティを継続しますか? Android Docsによれば、Homeキーはフレームワークによって処理され、アプリケーションには決して渡されません。 –

+0

ただ彼に警告し、データを保存する –

+0

あなたは、ホームキーを押してデータを保存することができます。ダイアログを表示するには、ホームキーがユーザーをメイン画面に移動させるため、アプリケーションコンテキストからダイアログを表示する必要があります。 –

答えて

0

を助けていませんでし。ダイアログを表示するには、ホームキーがユーザーをメイン画面に移動させるため、アプリケーションコンテキストからダイアログを表示する必要があります。ユーザがホームボタンをトリガすると、現在のアクティビティが閉じます。ユーザーはメイン画面に移動します。この段階では、あなたの活動はバックグラウンドにあります。コントロールはAndroid OSに与えられているため、あなたのアクティビティはダイアログを起動できません。

Android Docsによると、ホームキーはフレームワークによって処理され、アプリケーションには配信されません。

本質的に、ホームボタンを押した後、ユーザーがあなたのアクティビティにとどまることは強制できません。ユーザーがそれをトリガーすると、コントロールがAndroidに渡されます。あなたのアプリケーションの文脈で言えば、それを無効にする方法はありません。

関連する問題