我正在尝试制作一个演示项目,根据这个项目,只要用户在任何活动中点击edittext,我的应用程序的活动就会开始
所以每当我们点击任何应用程序中的任何活动中的edittext时,无论是fb,whatsapp,LINE等,键盘会自动出现,我都会感到困惑 它是否使用broadcastreceiver或InputMethodService 如果它使用InputMethodService并且如果我没有错,这个InputMethodService是一种服务和服务有一个缺点,系统有时会自动杀死后台服务以释放内存。但每次我们点击edittext时都会出现键盘。 所以任何人都可以告诉我们每当我们点击edittext时键盘是如何出现的。 谢谢
答案 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
}
}