0

我需要一种方法来开始(更有可能将其放在前面)一个活动“MyActivity”......我只知道 xml 清单(意思是我知道:pachage name,class name,intent fiters - MAIN only & no specific broadcast)

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

我现在用的:

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 在意图过滤器中没有特别的意图,也没有广播!

所以想法??

4

3 回答 3

0

也许试试这样:

Intent i = new Intent();
i.setClassName("com.app.pachage", "com.app.pachage.subpack.MyActivity");
startActivity(i);
于 2012-04-23T11:39:10.867 回答
0

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

I.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
于 2012-04-23T11:42:02.253 回答
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);
于 2012-04-23T15:36:28.757 回答