在Android中获取“窗口已经集中,无视焦点增益:com.android.internal.view.IInputMethodClient $ Stub $ Proxy”

时间:2010-06-29 12:20:33

标签: android android-intent warnings

当我从一个意图转到另一个意图时,我收到了这个警告:

“窗口已经集中,无视焦点增益:com.android.internal.view.IInputMethodClient $ Stub $ Proxy”

并且视图保留旧的意图。

代码是:

   btnCatalog.setOnClickListener(new OnClickListener() {
   private ProgressDialog myProgressDialog;
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    myProgressDialog = ProgressDialog.show(introPage.this,
      "Please wait...", "Doing Extreme Calculations...", true);
    new Thread() {
     public void run() {
      try{
       fetchAndStoreData();
       Intent toMainPage = new Intent(introPage.this, mainPage.class);
       startActivity(toMainPage);
       sleep(5000);
      } catch (Exception e) { }
      myProgressDialog.dismiss();
     }
    }.start();
   }
  });

但是当我评论fetchandStoreData()方法时,意图移动到另一个意图。 fetchAndStoreData()方法正在读取文件中的XML读取数据,并将数据保存到SQLLite数据库中。

到目前为止,我不知道为什么会出现这种警告。

需要紧急帮助

由于

5 个答案:

答案 0 :(得分:5)

当在Manifest文件中未声明“mainPage”(启动意图)时,我遇到此错误 尝试添加:
    < activity android:name =“。mainPage”/>

答案 1 :(得分:4)

另一种解决方案:检查正在打开的Activity的onCreate,onResume等方法。在我的例子中,我更改了一些代码,以便我的onCreate方法在方法结束之前调用this.finish();。我猜你在做这种情况时会出现某种竞争状态,每当我打开我的Activity时,我会在logcat中得到同样的东西:

W/InputManagerService(  104): Window already focused, 
ignoring focus gain of: 
com.android.internal.view.IInputMethodClient$Stub$Proxy@46399630

修复正在打开的活动!如果您需要在打开后立即关闭活动,请找到其他方法来执行此操作;也许是通过runOnUiThread方法,我不知道。

答案 2 :(得分:3)

我有一个不同的问题。我能够改变一次活动,但不能超过这个。我认为这是导航到第二个Intent.FLAG_ACTIVITY_NO_HISTORY时使用Activity并使用Activity.startActivity返回第一个应用程序的组合。当我切换到使用Activity.finish()离开第二个Activity并返回第一个时,一切都开始变得更好了。

答案 3 :(得分:1)

昨天遇到了同样的问题,因为androidManifest.xml上的活动声明中有拼写错误,但即使修复了错误仍然存​​在。

重新启动Eclipse和模拟器后,我在控制台中收到了这条消息:一旦主要活动启动:

“模拟器:模拟器窗口不在视图中并且最近被发现”

并且发起了次要活动,没有问题。

答案 4 :(得分:0)

一些特殊的隐藏字符或manifest.xml中的一些。粘贴自另一个manifest.xml:

android:screenOrientation="landscape"

问题发生后,手动删除并输入。然后清洁,建立。并且工作。乐趣。