例如,我在一个应用程序中有一些活动,为了查看某个活动的用户界面或其他任何内容,我需要运行某个不是应用程序启动器的活动。
一种愚蠢的方式是建造一扇门#34;在发射器中的那个活动,从门进入活动。但是,有没有更好的方法单独运行某项活动?
答案 0 :(得分:26)
很简单。首先导出您需要运行的活动:
在Manifest的Activity声明中添加android:exported="true"
。这是因为am
是一个外部应用程序,您需要导出活动以允许外部应用程序启动它们。
转到“运行”菜单中的“编辑配置...”。
在左侧窗格中,选择您的应用程序。在右侧窗格的“常规”选项卡的“启动选项”部分中,有一个“启动:”下拉列表。
选择“指定的活动”,然后输入您在清单中显示的活动名称。
您可以根据需要创建任意数量的配置,并根据需要对其进行命名,例如指示正在启动的活动。
答案 1 :(得分:3)
我正在使用Android Studio稳定版2.1.2,并且有一个快捷方式可以执行此操作。 Just open the activity class you wish to run and right click on coding area
,可以选择运行和调试特定活动,如下面的屏幕截图所示。
对于Windows,使用快捷键 ctrl + shift + F10 和mac使用 ctrl + 移 + - [R 。我已经在模拟器中对它进行了测试,并且工作正常,没有在实际设备中进行测试。仅适用于活动类,并且不要忘记通过单击将光标放在编码区域。此外,我不知道这个选项是否适用于旧版Android Studio版本低于2.1.2。
答案 2 :(得分:1)
<activity android:name=".phoneVideo">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 3 :(得分:0)
正如API reference中所述,您可以通过在应用的 manifest.xml 中为活动指定操作名称来轻松实现此目的:
<activity android:name="Activity3" ... >
<intent-filter>
<action android:name="com.company.package.FOO"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
然后从任何地方创建以下intent
,以便专门运行此活动:
startActivity(new Intent("com.company.package.FOO"));
在您明确说明在运行应用而不是启动器时必须先运行活动之后,您可以通过不设置启动器活动的内容来实现这一点,而是创建一个运行所需活动的意图:
<强> MainActivity:强>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_layout); // remove this line
Intent intent = new Intent(ThisActivity.this, WantedActivity.class);
intent.putExtra("EXIT", false);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
答案 4 :(得分:0)
添加该活动的导出的真实清单声明。
转到该活动,右键单击任何地方,go也将获得带有“运行XYZ活动”选项的特定选项。只需运行
答案 5 :(得分:0)
在我的示例中,特定活动称为 Activity2,项目称为 ScreenSizes
1- 打开 Android 清单:app>manifests>AndroidManifest.xml
2- 将特定活动的活动部分更改为包含 android:exported="true",如下所示:
<activity android:name=".Activity2"
android:exported="true">
</activity>
3-打开特定活动的java类:app>java>com.example.(your app name)>(特定活动)
在我的情况下是:app>java>com.example.screensizes>Activity2
4- 右键单击 Java 文件的空白/白色区域中的任意位置,然后选择“运行”选项“(活动名称)”
在我的情况下是:运行'Activity2'
答案 6 :(得分:-1)
首先,您需要在应用中进行两个或多个活动。假设您要转到应用中的某个活动以首先显示。可能出于测试目的或其他目的。让我们看看如何做到 首先,您需要找到 AndroidManifest.xml 文件。它在清单文件夹下。 According to this first dispaly activity is MainActivity
假设我要先显示家庭活动。所以我要做的就是简单地剪切intent-filter ... / intent-filter并将其粘贴到家庭活动中。 Like this
据此,首先显示主动性是MainActivity,
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".home">
</activity>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
当我们要使 home 主动显示首先进行Simplay更改时,
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".home">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity">
</activity>
</application>
这应该有效。希望这会有所帮助