2015-07-17 4 views
0

Я узнал, что в зависимости от того, какая активность содержит .MAIN AND .LAUNCHER будет запущена при каждом нажатии приложения на моем устройстве, и я также узнал, что порядок действий не имеет значения. Мое приложение содержит два действия сначала один .MainActivity и второй .MainActivity2Activity. Я написал .MAIN AND .LAUNCHER в обоих действиях с .MainActivity до .MainActivity2Activity, это приложение начало правильно, но когда я меняю порядок, то .MainActivity2Activity начинает ** сначала с поддельными данными («мир привет появляется из ниоткуда»)) и .MainActivity не запускается (при нажатии кнопки «Назад» в активности .MainActivity2Activity). Мой вопрос заключается в том, что имеет место порядок действий и почему он не показал никакой ошибки, что два действия содержат .MAIN AND. LAUNCHER, AND FROM WHERE HELLO WORLD.Активность начала манифеста Android

<activity 
     android:name=".MainActivity" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/Theme.AppCompat.Light.DarkActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".MainActivity2Activity" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/title_activity_main_activity2" 
     android:theme="@style/Theme.AppCompat.Light.DarkActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.utkarsh.beatle.app.MainActivity" /> 

    </activity> 
+0

Я добавил две пусковые установки для лучшего понимания того, как работает андроид, я думал, что будет ошибка, но не было такой вещи, которая меня смутила, и я обнаружил, что проявление Android также зависит от порядка действий, которые это тоже путало меня. Я желая знать, почему нет ошибки, а не как ее исправить, я это уже знаю. – JSONParser

ответ

1

запускает XML-активность который он находит первым, и тем самым тот, который вы написали сверху. Для справки hello world может быть, что у вас есть текстовый элемент, чье первоначальное значение может быть приветственным миром, и вы получаете какое-то значение от намеренного вызова и заменяете его этим значением. Следовательно, когда он запускается непосредственно, основным его значением является Hello World.

Причина, по которой она не показала ошибки, состояла в том, что вы можете иметь 2 действия, даже если это не рекомендуется. Вам просто нужно иметь этот код в одном из них в xml.

Они должны оба получить свои отдельные значки, чтобы сохранить для них другое имя или значок. Каждый из них запускает другое действие. Кнопка «Назад» не приведет вас домой, поскольку вы сразу запустили вторую операцию и не были перенаправлены туда из первого действия.

0

Чтобы начать другую активность от текущего activty вы должны использовать Intent, он не будет открывать, просто выбрав кнопку назад, установите LAUNCHER, к которому когда-либо активность вы хотите, чтобы открыть первую, пусть MainActivity2 затем внутри MainActivity2 написать

public class MainActivity2 extends Activity(){ 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_ui); 

    //Calling other activity 
    Intent intent=new Intent(MainActivity2.this,MainActivity.class); 
    startActvity(intent); 
    } 
} 
+0

Я понял намерение, за это спасибо, но как насчет проблемы «порядка действий», как упоминалось выше. – JSONParser

+0

Ну просто установите LAUNCHER только для одного действия, а для остальной части Activity нет необходимости определять , Указание двух или более действий в качестве пусковой установки будет только источником ошибок и ошибок. –

+0

, что только почему я говорю, почему нет ошибки ?? – JSONParser

0

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

это способ написания кода для 2-х видов деятельности

<activity 
     android:name=".MainActivity" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/Theme.AppCompat.Light.DarkActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".MainActivity2Activity" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/title_activity_main_activity2" 
     android:theme="@style/Theme.AppCompat.Light.DarkActionBar"> 

    </activity> 
+0

Спасибо за ответ, но я добавил две пусковые установки для лучшего понимания того, как работает андроид, я думал, что будет ошибка, но не было такой вещи, которая меня путала, и я обнаружил что проявление Android также зависит от порядка действий, которые это тоже смутило меня. Я очень хочу знать, почему нет ошибки, а не как ее исправить. Я знаю это уже. – JSONParser

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