Как запустить определенную деятельность в Android Studio?

Например, у меня есть несколько действий в одном приложении, и для того, чтобы увидеть определенный пользовательский интерфейс активности или что-то еще, мне нужно запустить определенную активность, которая не является средством запуска приложения.

Один глупый способ состоит в том, чтобы построить "дверь" для этой деятельности в пусковой установке и войти внутрь деятельности из двери. Однако есть ли лучший способ запустить определенную деятельность в одиночку?

Ответ 1

Очень легко. Начните с экспорта активности, которую необходимо выполнить:

Добавить android:exported="true" в объявлении активности в манифесте. Это связано с тем, что am является внешним приложением, и вам нужно экспортировать Activity, чтобы позволить внешнему приложению запускать их.

Перейдите в "Редактировать конфигурации..." в меню "Выполнить".

На левой панели выберите ваше приложение. В правой панели на вкладке "Общие" в разделе "Параметры запуска" есть раскрывающийся список "Запуск:".

Выберите "Указанная активность" и введите название своей деятельности, как показано в манифесте.

Вы можете создать столько конфигураций, сколько захотите, и назовите их, как вам нравится, например, чтобы указать, какая активность запускается.

Ответ 2

Я использую стабильную версию 2.1.2 для Android Studio, и для этого есть один ярлык. Just open the activity class you wish to run and right click on coding area, есть опции для запуска и отладки конкретного действия, как показано на рисунке ниже.

Для Windows используйте ярлык ctrl + shift + F10, а для mac используйте ctrl + shift + R. Я тестировал это в эмуляторе и работал нормально, не тестировал его на самом устройстве. Работая только по классу активности и не забудьте поместить курсор в область кодирования, щелкнув по нему. Также я не знаю, доступен ли этот вариант в старых версиях Android версии менее 2.1.2.

введите описание изображения здесь

Ответ 3

<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введите описание изображения здесь

Ответ 4

Как упоминалось в этом ответе, вы можете легко достичь этого, указав действие имя действия в 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);
}

Ответ 5

Добавить экспортированное истинное объявление Manifest для этого действия.

Перейдите к этому действию, щелкните правой кнопкой мыши в любом месте, иди получите определенную опцию с опцией "Запустить XYZ Activity" просто запустите

Ответ 6

Для начала вам нужно иметь в своем приложении два или более действия. Допустим, вы хотите перейти к определенной активности в вашем приложении для отображения в первую очередь. Может быть для целей тестирования или любого другого. Давайте посмотрим, как это можно сделать. Сначала вам нужно найти файл AndroidManifest.xml. Его там под папкой манифестов. Согласно этому первому показателю активности MainActivity

Допустим, я хочу, чтобы сначала показывал домашнюю активность. Так что я должен просто вырезать... и вставить его в домашнюю деятельность. Как это

Активность первого отображения - это 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>