android startActivity ..异常行为

时间:2012-04-23 11:34:48

标签: android android-activity android-intent

我需要一种方法来启动(更有可能带到前面)一个活动“MyActivity”...我只知道xml清单(意思是我知道:pachage名称,类名,意图fiters - MAIN only&没有特别的广播)

那么我该如何开始这项活动?

我现在使用的是什么:

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 filter& amp;中没有特定意图。没有广播!

所以想法?

3 个答案:

答案 0 :(得分:0)

或许尝试这样:

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

答案 1 :(得分:0)

尝试设置一些Intent标志,例如

I.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)

答案 2 :(得分:0)

试试吧。它可能会有所帮助

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