如何在用户启用特定IME(或者可能只是任何ime,如果这是唯一的可能性)之后关闭IME设置活动(ACTION_input_METHOD_SETTINGS),就像Google键盘一样.
我试过了两个:
@H_404_6@Intent enableIntent = new Intent(Settings.ACTION_input_METHOD_SETTINGS); //enableIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); activity.startActivityForResult(enableIntent, 0);
和:
@H_404_6@Intent enableIntent = new Intent(Settings.ACTION_input_METHOD_SETTINGS); enableIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(enableIntent);
但是一旦选择/启用项目,它就无法返回到调用活动.
谷歌键盘打开IME输入设置屏幕,一旦启用键盘(单击复选框),设置活动将关闭,用户将返回到先前的向导活动.
解决方法:
我也很难尝试解决这个问题.直到我意识到我可以检查AOSP实施here.具体来说,检查SetupWizardActivity.对我来说,看起来是谷歌旋转了一个Handler,它将对该州进行民意调查.具体来说,尝试按照SettingsPoolingHandler#handleMessage
特别:
@H_404_6@ step1.setAction(new Runnable() { @OverrIDe public voID run() { invokeLanguageAndinputSettings(); handler.startPollingImeSettings(); } }); public voID startPollingImeSettings() { sendMessageDelayed(obtainMessage(MSG_PolliNG_IME_SETTINGS), IME_SETTINGS_PolliNG_INTERVAL); } @OverrIDe public voID handleMessage(final Message msg) { final SetupWizardActivity setupWizardActivity = getownerInstance(); if (setupWizardActivity == null) { return; } switch (msg.what) { case MSG_PolliNG_IME_SETTINGS: if (UncachedinputMethodManagerUtils.isThisImeEnabled(setupWizardActivity, mImmInHandler)) { setupWizardActivity.invokeSetupWizardOfThisIme(); return; } startPollingImeSettings(); break; } } voID invokeSetupWizardOfThisIme() { final Intent intent = new Intent(); intent.setClass(this, SetupWizardActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_reset_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_SINGLE_top | Intent.FLAG_ACTIVITY_CLEAR_top); startActivity(intent); mNeedsToAdjustStepNumberToSystemState = true; }
总结 以上是内存溢出为你收集整理的Android – 用户启用输入法后关闭IME设置活动全部内容,希望文章能够帮你解决Android – 用户启用输入法后关闭IME设置活动所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)