0

Я хотел бы запустить мое приложение и проверить состояние подключения в методе onCreate приложения, а затем решить, какую работу начать! Я знаю, что я мог закончить() действие MAIN/LAUNCHER по умолчанию перед тем, как установить setLayout, а затем запустить другое, если это актуально, но это кажется беспорядочным для меня!Начало приложения без начального действия

Итак, я хотел бы узнать, можно ли запустить приложение, которое не проявляет активность с действием. MAIN/category.LAUNCHER? Я пробовал этот путь, но он не работает! Я имею в виду, что приложение, похоже, начинается, но активность не показана!

(Это не пример из моего реального кода, я не у себя дома прямо сейчас! Некоторые аргументы и вещи могут отсутствовать, но я думаю, вы получите точку!)

public class MyApp extends Application { 
    onCreate() { 
     Intent intent = new Intent(this, MyActivity.class); 
     intent.setFlags(Intent.NEW_TASK); 
     this.startActivity(intent); 
    } 
} 

Кроме того, Первым действием моего приложения может быть AlertDialog, и мне интересно, могу ли я запустить его, пока не запущена никакая активность, или если я вынужден задать тему действия с помощью @android: style/Theme.Dialog?

Я попробовал так же, как для приведенного выше примера, но тот же результат: LogCat говоря применение в живых, пока нет печати на всех ...

Скажите мне, если я не достаточно ясно, и каким образом! Я не английский, и я не привык спрашивать на форумах!

ответ

1

Вам придется идти по этому пути:

public class MainActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     setContentView(R.layout.some_empty_or_loading_view); //optional probably, not sure 

     //TODO: check whatever you want 
     if(condition) { 
      startActivity(this, SomeActivity.class); 
     } else { 
      startActivity(this, AnotherActivity.class); 
     } 

     finish(); 
    } 
} 

Specify Your App's Launcher Activity

Когда пользователь выбирает значок приложения на главном экране, система вызывает метод OnCreate() для деятельности в приложении что вы заявили, что являетесь «пусковой» (или «основной») деятельностью. Это действие, которое служит основной точкой входа в пользовательский интерфейс вашего приложения.

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

Основное действие для вашего приложения должно быть объявлено в манифесте с помощью функции MAIN и LAUNCHER. Например:

<activity android:name=".MainActivity" android:label="@string/app_name"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

Примечание: При создании нового Android проекта с Android SDK инструменты, файлы проекта по умолчанию включают класс Activity, который объявлен в манифесте с этим фильтром.

Если какое-либо основное действие или категории LAUNCHER не объявляются для одного из ваших действий, то ваша иконка приложения не будет отображаться в списке Начального экрана из приложения

+0

Это правильный подход, вы можете определить связь ранее на вашем жизненном цикле (пример - onCreate в вашем приложении, это нормально), но тогда вы должны иметь LauncherActivity, который во время 'onCreate' определяет, что делать (то есть: запускать другое действие или просто отображать правильный контент, а не запускать ДРУГОЙ деятельность ... так как вы уже там.). В качестве примечания вам не нужно устанавливатьContentView перед выполнением проверки, вы можете сделать это впоследствии, когда/если вы решите перейти на другую деятельность или остаться здесь. –

Смежные вопросы