2

私は新しいAndroid開発者です。戻るボタンの処理方法は知っていますが、ホームボタンの処理方法がわかりません。ホームボタンをクリックすると、さまざまな方法を試しましたが、使用されていません。誰か助けて解決してください。私の問題。私は次のコードを使用しました、

 @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) 
  {
    if(keyCode==KeyEvent.KEYCODE_HOME)
    {
        Toast.makeText(this, "Click Home ", Toast.LENGTH_LONG).show();
    }
    return super.onKeyDown(keyCode, event);
   }
4

5 に答える 5

8

あなた。しかし、あなたがDoes not get Home Button click eventホームボタンを押すとき、このメソッドを呼び出します

  @Override
        protected void onStop() {

            super.onStop();
        }
于 2012-06-03T11:24:24.897 に答える
0

HOMEボタンがクリックされたかどうかはわかりません。また、HOMEボタンが押されたときにアプリが非表示になるのを止めることはできませんが、アプリが表示されなくなったかどうかはわかります(BACKキー、HOMEキーなど)。アプリがフォアグラウンドになりました)。

onPauseまたはをオーバーライドonStopして、そこにログを追加するだけです。

于 2012-06-03T11:23:03.240 に答える
0

私は答えplsが以下に与えられたコードを追加するのを見つけました-

public boolean isApplicationSentToBackground(final Context context) 
   {
    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);
    if (!tasks.isEmpty()) {
        ComponentName topActivity = tasks.get(0).topActivity;
        if (!topActivity.getPackageName().equals(context.getPackageName())) {
            return true;
        }
    }
    return false;
}





@Override
public void onStop() {
    if (isApplicationSentToBackground(this)){
        //put your code here what u want to do

    }
    super.onStop();
}

マニフェストファイルに変更を加える-

<uses-permission android:name="android.permission.GET_TASKS" />
于 2017-06-21T10:58:55.410 に答える
0

ここに画像の説明を入力してください フレームワークレイヤーによって処理されるAndroidホームキーは、アプリケーションレイヤーレベルでは処理できません。ホームボタンのアクションは、以下のレベルですでに定義されているためです。ただし、カスタムROMを開発している場合は、それが可能かもしれません。Googleは、セキュリティ上の理由から、HOMEBUTTONオーバーライド機能を制限しました。

于 2019-09-27T05:31:05.587 に答える
-1

ホームプレスイベントを検出できなくなりました。しかし、あなたは他の方法でホームプレスイベントを得ることができます論理的にそれはあなたにも役立つことを願って私のために働きます。

アクティビティでこれを定義する

public static boolean OnPause = false;
public static boolean OnResume = false;

このメソッドをアクティブにする

 @Override 
  protected void onPause() 
  { 
      // TODO Auto-generated method stub
      super.onPause(); 

       OnPause  = true;

  }

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();

    OnResume = true;        

}
@Override
protected void onStop() {
    // TODO Auto-generated method stub
    super.onStop();

    if(OnPause == true && OnResume == false)
    {
        Log.e("My activity ", " **** home is press *** ");
        //Do Your Home press code Here.

    }

    OnPause = false;
    OnResume = false;

}
于 2012-10-23T13:36:25.590 に答える