4

homebuttonclick イベントを押したときに通知を表示するために、特定の関数を呼び出したいと思いました。

このブログを参考にしました。

次のように書かれたコード:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event){
        if(keyCode == KeyEvent.KEYCODE_HOME){
            APP_STATUS="SLEEP";

          LocalToNotification();

        }
        return true;
    }   

しかし、残念ながらそれは機能していませんでした。

デバッガーでテストしましたが、ホームボタンを押してもデバッガーがこのコード行に来ていないことがわかりました。

上記のコードで何が間違っていますか?

私を助けてください。

4

4 に答える 4

2

キーコード定数:ホームキー。このキーはフレームワークによって処理され、アプリケーションに配信されることはありません。

于 2014-12-05T14:44:34.970 に答える
2
protected void onUserLeaveHint() {

    finish();
    super.onUserLeaveHint();
}
于 2014-05-19T07:41:40.340 に答える
1
protected void onUserLeaveHint ()

Added in API level 3

ユーザーの選択の結果、アクティビティがバックグラウンドに移行しようとしているときに、アクティビティ ライフサイクルの一部として呼び出されます。たとえば、ユーザーがホーム キーを押すと onUserLeaveHint() が呼び出されますが、電話の着信によって通話中のアクティビティが自動的に前面に表示されると、中断されたアクティビティで onUserLeaveHint() は呼び出されません。 . 呼び出される場合、このメソッドはアクティビティの onPause() コールバックの直前に呼び出されます。

このコールバックと onUserInteraction() は、アクティビティがステータス バーの通知をインテリジェントに管理できるようにすることを目的としています。具体的には、活動が通知をキャンセルする適切な時期を決定するのを支援するためです。

コード:-

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

        new OfflineAsyncTask(BaseActivity.this).execute();
    }
于 2014-06-12T10:05:27.657 に答える