与市场应用程序的交互导致窗口焦点错误



我有一个奇怪的问题,我想从我的应用程序启动到市场-我正在做以下工作。

 Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(
             "market://details?id=" + activity.getPackageName()));
    try {
        activity.startActivity(marketIntent);
    } catch (ActivityNotFoundException e) {
        Toast.makeText(activity, "Could not launch market", Toast.LENGTH_LONG).show();
    }

但是当用户可以再次按下Open时,当他们这样做时,我得到:

08-22 15:18:37.510: INFO/ActivityManager(260): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.xyz.appname cmp=com.xyz.appname/.mainapp } from pid 22853
08-22 15:18:37.590: INFO/ActivityManager(260): Starting: Intent { cmp=com.xyz.appname/.secondactivity } from pid 25735
08-22 15:18:37.590: WARN/InputManagerService(260): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@2b49a938

,它永远不会重新打开应用程序,它们只是停留在那里-点击反击是有效的。跟踪代码,警告来自mainapp:

Intent tabActivity = new Intent();
    tabActivity.setClass(this, secondactivity.class);
startActivity(tabActivity);
this.finish();  

这看起来肯定是重启方式的问题——你的最后一点代码是正确的。

这个标志看起来像是你需要告诉Android从历史堆栈中取出现有的活动并重新使用它:

FLAG_ACTIVITY_SINGLE_TOP

或者(如果你想重新启动而不是恢复),也许你可以暗示Android在你继续前进后回收活动,通过使用这个与你的意图:

intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

最新更新