Return 至 activity 操作输入法设置后

Return to activity after Action Input Method Settings

我正在制作自定义键盘应用程序。
有一个按钮可以将用户从应用程序引导至 Input Method Settings
这是意图:

startActivityForResult(new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS), 2000);

现在,有没有办法让 return 用户在启用键盘后进入 activity?
编辑
有没有一种方法可以设置 BroadcastReceiver 并在用户点击警告 window 按钮时注册?然后应用程序可以调用 super.onResume() 来恢复 activity.

startActivityForResult(new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).addFlags
                (Intent.FLAG_ACTIVITY_CLEAR_TASK), 2000);

这应该有效,但请注意 Intent.FLAG_ACTIVITY_CLEAR_TASK 重新查询 >=11 api 级别

因此,我只是在启动“设置”菜单的同时生成一个侦听更改的 IntentService。我相信这也是 SwiftKey 的做法。

public class MyService extends IntentService {

    /**
     * Creates an IntentService
     */
    public MyService() {
        super("MyService");
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        String packageLocal = getPackageName();
        boolean isInputDeviceEnabled = false;
        while(!isInputDeviceEnabled) {
            InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
            List<InputMethodInfo> list = inputMethodManager.getEnabledInputMethodList();

            // check if our keyboard is enabled as input method
            for(InputMethodInfo inputMethod : list) {
                String packageName = inputMethod.getPackageName();
                if(packageName.equals(packageLocal)) {
                    isInputDeviceEnabled = true;
                }
            }
        }

        // open activity
        Intent newIntent = new Intent(this, MainActivity.class);
        newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(newIntent);
    }
}