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); 
+0

你是我的救星!意味着列举的标志帮助了我...但仍然:开始一个活动(但不是在当前进程中),broadCastReceivers是解决方案! – pulancheck1988 2012-04-25 06:48:02

也许尝试这样的:

Intent i = new Intent(); 
i.setClassName("com.app.pachage", "com.app.pachage.subpack.MyActivity"); 
startActivity(i); 
+0

我收到一个很大的错误: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

+0

...如此明确:意思是内部的(如果活动属于我的应用程序,并且在我的xml中声明,这将起作用) – pulancheck1988 2012-04-23 11:44:17

+0

是的,您是否在应用程序的清单中声明了'com.app.pachage.subpack.MyActivity'? – waqaslam 2012-04-23 11:44:37

尝试设置一些意向性标志,如

I.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT) 
+0

Nop ...在我的例子相同的情况:旧的活动仍然未改变在后台..新的一个被带到前面,但在我的过程 – pulancheck1988 2012-04-23 11:47:26