键盘自动出现,是否使用broadcastreceiver或InputMethodService?

时间:2014-08-13 05:30:28

标签: android keyboard

我正在尝试制作一个演示项目,根据这个项目,只要用户在任何活动中点击edittext,我的应用程序的活动就会开始

所以每当我们点击任何应用程序中的任何活动中的edittext时,无论是fb,whatsapp,LINE等,键盘会自动出现,我都会感到困惑 它是否使用broadcastreceiver或InputMethodService 如果它使用InputMethodService并且如果我没有错,这个InputMethodService是一种服务和服务有一个缺点,系统有时会自动杀死后台服务以释放内存。但每次我们点击edittext时都会出现键盘。 所以任何人都可以告诉我们每当我们点击edittext时键盘是如何出现的。 谢谢

1 个答案:

答案 0 :(得分:0)

InputMethodService 是检测何时显示android键盘的服务, 这项服务是一个Android系统服务。

您可以尝试制作服务并对其进行研究。您可以使用下面的代码并在showSoftInput()方法中实现您的意图。

     import android.inputmethodservice.InputMethodService;
     import android.os.IBinder;
     import android.os.ResultReceiver;
     import android.view.inputmethod.EditorInfo;
     import android.view.inputmethod.InputBinding;
     import android.view.inputmethod.InputConnection;
     import android.view.inputmethod.InputMethod;
     import android.view.inputmethod.InputMethodSession;
     import android.view.inputmethod.InputMethodSubtype;

 public class MyService extends InputMethodService implements InputMethod{

@Override
public void attachToken(IBinder token) {
    // TODO Auto-generated method stub

}

@Override
public void bindInput(InputBinding binding) {
    // TODO Auto-generated method stub

}

@Override
public void changeInputMethodSubtype(InputMethodSubtype subtype) {
    // TODO Auto-generated method stub

}

@Override
public void createSession(SessionCallback callback) {
    // TODO Auto-generated method stub

}

@Override
public void hideSoftInput(int flags, ResultReceiver resultReceiver) {
    // TODO Auto-generated method stub

}

@Override
public void restartInput(InputConnection inputConnection,
        EditorInfo attribute) {
    // TODO Auto-generated method stub

}

@Override
public void revokeSession(InputMethodSession session) {
    // TODO Auto-generated method stub

}

@Override
public void setSessionEnabled(InputMethodSession session, boolean enabled) {
    // TODO Auto-generated method stub

}

@Override
public void showSoftInput(int flags, ResultReceiver resultReceiver) {
    // TODO Auto-generated method stub
//  Run your APP here
    //Intent to your acticity
}

@Override
public void startInput(InputConnection inputConnection, EditorInfo info) {
    // TODO Auto-generated method stub

}

@Override
public void unbindInput() {
    // TODO Auto-generated method stub

}



   }