android Activity关闭键盘

目录

提交完数据后,需要立即finish掉Activity,并关闭键盘 4.4 以上的系统可以在完成正常的关闭, 4.4以下的不能直接的,activity关闭了 键盘并不能关闭。

因此需要调用延时的关闭activity

runUiThreadDelay(new Runnable(){
    @Override
    public void run() {
       finish();    
    }}, 300L);

关闭activity方法

@Override
public void finish() {
    closeSoftKeyBoard();
    super.finish();
}

关闭键盘方法

private void closeSoftKeyBoard() {
    hideSoftInput(activity);
}

public static boolean hideSoftInput(Activity activity) {
    if(activity.getCurrentFocus() != null) {
        return imm.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
    } else {
        return false;
    }
}

主线线程延时任务

public void runUiThreadDelay(Runnable runnable, long delayMillis) {
    getHandler().postDelayed(runnable, delayMillis);
}

public Handler getHandler() {
    if (mHandler == null) {
            mHandler = new Handler(Looper.getMainLooper());
    }
    return mHandler;
}