2016-08-30 4 views
2

私はいくつかのIMMコードを入力するアプリケーションを持っています。そして、システムポップアップのダイアログが表示された後、何が起こったのかを知らせるために重要です。システムダイアログをプログラムで閉じるにはどうすればいいですか?以下は enter image description hereプログラムでシステムダイアログを閉じます

私のコードです:

public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 

    Log.e("Focus debug", "Focus changed !"); 

    if (!hasFocus) { 
     Log.e("Focus debug", "Lost focus !"); 
     Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); 
     sendBroadcast(closeDialog); 
    } 
} 

そして、このコード:(動作しない)

sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); 

そして、このコード(同様の):(動作しない)

Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); 
    sendBroadcast(closeDialog); 

このシステムダイアログがすべてポップアップした後、ユーザがマニュアルを閉じるまで待つ

私は何をすることができますか、システムダイアログを閉じますか?

+0

そのダイアログは、あなたのコードから表示された場合

は、このような何かを試してみてください。 。これは、ユーザのアクションが一時的なシステムダイアログを要求して却下する必要があるときにブロードキャストされます。一時的なシステムダイアログの例には、通知ウィンドウシェードと最近のタスクダイアログがあります。 –

+0

だから?私はこのダイアログを閉じることができないと教えてくれる? それを閉じるための強制方法がありますか? "OK"を押してもそれはうまくいくでしょう。 – sharon2469

+0

このようなAPIに対して良い引数があるので、これは可能ではないと思います。 – Christopher

答えて

-1

グローバルなDialogインスタンスを使用してダイアログインスタンスを保持できる場合は、手動でそのインスタンスをオフにすることができます。上記のアクションは、すべてのシステムダイアログを閉じません

private Dialog mDialog; 

public void whereDialogPopsup() 
{ 
    AlertDialog.Buildder builder = new AlertDialog.Builder(); 
    ... 
    mDialog = builder.show(); 
} 

public void closeDialog() 
{ 
    if(mDialog != null) 
    { 
     mDialog.dismiss(); 
     // remove it if you don't need any more 
     mDialog = null; 
    } 
} 
+0

質問はシステムダイアログを閉じることです。 –

+0

はいどうすればいいですか? – sharon2469

関連する問題