1

我遇到了从我的其他活动开始的问题。我知道这必须在其他地方完成,因为那里有很多启动器应用程序,其中很多使用包管理器来启动特定活动......

我可以从包管理器中获得一个我想从包管理器开始的 Acitivity 名称,但是我怎样才能以某种方式解析它并将其变成一个意图?请记住,我无法访问该课程...此外,我想开始该特定活动,而不是从包中启动 MAIN 意图...

我敢肯定有人一定在某个地方做这件事……这是活动的重点,不是吗?

4

2 回答 2

3

假设您在 AndroidManifest.xml 中有以下内容

    <!-- The askUser dialog activity -->
    <activity android:theme="@android:style/Theme.Dialog"
              android:name="my.app.AskUserActivity" 
              android:excludeFromRecents="true"
              android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="my.app.intents.AskUserConfirmConnect"/>
            <category android:name="android.intent.category.DEFAULT" />                
        </intent-filter>
    </activity>     

然后您可以按名称调用此 Activity,如下所示:

Intent dlgIntent = null;

dlgIntent = new Intent("my.app.intents.AskUserConfirmConnect");
dlgIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
dlgIntent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
context.startActivity(dlgIntent);
于 2012-01-10T15:49:48.673 回答
1

您可以在 Intent 上使用setClassName(String, String)以避免需要其他类。

于 2012-01-10T15:47:07.087 回答