我有一个奇怪的问题,我想从我的应用程序启动到市场 - 我正在做以下事情。
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();
答案 0 :(得分:0)
这绝对看起来像是重新启动的问题 - 你在最后一段代码的正确轨道上。
这个标志看起来像你需要告诉Android从历史堆栈中拉出现有活动并重新使用它:
FLAG_ACTIVITY_SINGLE_TOP
或者(如果你想重新启动而不是恢复),也许你可以提示Android在你继续之后回收活动,通过你的意图使用它:
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);