如何在Android Studio中运行某项活动?

时间:2016-07-11 13:24:16

标签: android android-studio

例如,我在一个应用程序中有一些活动,为了查看某个活动的用户界面或其他任何内容,我需要运行某个不是应用程序启动器的活动。

一种愚蠢的方式是建造一扇门#34;在发射器中的那个活动,从门进入活动。但是,有没有更好的方法单独运行某项活动?

7 个答案:

答案 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。

enter image description here

答案 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>

enter image description here enter image description here

答案 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>

这应该有效。希望这会有所帮助