android startActivity ..不寻常的行为
我需要一种方式来启动(更可能带到前面)活动“MyActivity”...为此我只知道xml清单(意思我知道:pachage名称,类名,意图fiters - 主要只有&没有特别的广播)android startActivity ..不寻常的行为
那么我如何开始这项活动?
我现在用的是什么:
public boolean startActivity2(String componentName) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setComponent(ComponentName.unflattenFromString(componentName));
if (m_ContainerActivity.getPackageManager().resolveActivity(intent, 0) != null) {
m_ContainerActivity.startActivity(intent);
return true;
}
return false;
}
我这样称呼它喜欢:
startActivity2("com.app.pachage/.subpack.MyActivity");
而这个开始活动,但我我的过程 - 因此+10怪异的行为(我也有MyActivity在旧的进程)..我想要的是从后面的堆栈中带回旧的..
注意:MyActivity在intents中没有特别的意图过滤器& no broascast!
所以想法?
尝试。它可以帮助
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT|Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
,或者你可以尝试这样的
Intent intent = new Intent();
intent.setClassName(getapplicationContext(), com.app.pachage.subpack.MyActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT|Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
也许尝试这样的:
Intent i = new Intent();
i.setClassName("com.app.pachage", "com.app.pachage.subpack.MyActivity");
startActivity(i);
我收到一个很大的错误:04-23 14:41:49.809:E/AndroidRuntime(25806):android.content.ActivityNotFoundException:无法找到显式的活动类{com.pachage/subpachage.MyActivity};你有没有在你的AndroidManifest.xml中声明这个活动? – pulancheck1988 2012-04-23 11:43:22
...如此明确:意思是内部的(如果活动属于我的应用程序,并且在我的xml中声明,这将起作用) – pulancheck1988 2012-04-23 11:44:17
是的,您是否在应用程序的清单中声明了'com.app.pachage.subpack.MyActivity'? – waqaslam 2012-04-23 11:44:37
尝试设置一些意向性标志,如
I.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
Nop ...在我的例子相同的情况:旧的活动仍然未改变在后台..新的一个被带到前面,但在我的过程 – pulancheck1988 2012-04-23 11:47:26
你是我的救星!意味着列举的标志帮助了我...但仍然:开始一个活动(但不是在当前进程中),broadCastReceivers是解决方案! – pulancheck1988 2012-04-25 06:48:02