我遇到了从我的其他活动开始的问题。我知道这必须在其他地方完成,因为那里有很多启动器应用程序,其中很多使用包管理器来启动特定活动......
我可以从包管理器中获得一个我想从包管理器开始的 Acitivity 名称,但是我怎样才能以某种方式解析它并将其变成一个意图?请记住,我无法访问该课程...此外,我想开始该特定活动,而不是从包中启动 MAIN 意图...
我敢肯定有人一定在某个地方做这件事……这是活动的重点,不是吗?
我遇到了从我的其他活动开始的问题。我知道这必须在其他地方完成,因为那里有很多启动器应用程序,其中很多使用包管理器来启动特定活动......
我可以从包管理器中获得一个我想从包管理器开始的 Acitivity 名称,但是我怎样才能以某种方式解析它并将其变成一个意图?请记住,我无法访问该课程...此外,我想开始该特定活动,而不是从包中启动 MAIN 意图...
我敢肯定有人一定在某个地方做这件事……这是活动的重点,不是吗?
假设您在 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);
您可以在 Intent 上使用setClassName(String, String)以避免需要其他类。