Android清单启动活动

时间:2015-07-17 05:02:14

标签: android android-manifest

我已经了解到,无论哪个活动包含.MAIN AND .LAUNCHER,只要我点击我的设备中的应用程序,我就会首先启动它,并且我也了解到活动的顺序无关紧要。我的应用包含两个活动,第一个是 .MainActivity ,第二个是 .MainActivity2Activity 。我在.MainActivity之前的两个活动中都写过.MAIN和.LAUNCHER .MainActivity2Activity这样做,应用程序正确启动但是当我改变顺序时, .MainActivity2Activity首先用虚假数据启动** (“你好世界从无处出现“)和.MainActivity无法启动(单击.MainActivity2Activity活动中的后退按钮)。我的问题是,活动的顺序是否重要以及为什么它没有显示两个活动包含的任何错误.MAIN AND。发射器,以及来自HELLO WORLD的地方。

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

3 个答案:

答案 0 :(得分:1)

xml启动它首先找到的活动,从而启动你在上面写的活动。 对于hello world问题,可能是您有一个textView,其原始值可能是hello world,并且您从intent调用中获取了一些值并将其替换为该值。 因此,当它直接作为主要推出时,它的价值就是Hello World。

它没有显示错误的原因是即使不推荐也可以进行2项活动。您只需要在xml中的其中一个中包含此代码。

android:taskAffinity="your.own.package.SecondActivity"

他们都应该获得单独的图标,以便为他们保留不同的名称或图标。 每个人都会发起不同的活动。 后退按钮不会将您带回家,因为您已直接启动第二个活动,并且尚未从第一个活动重定向到那里。

答案 1 :(得分:0)

要从当前激活中启动另一个活动,您必须使用意图,只需选择后退按钮就可以打开它,将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);
  }
}

答案 2 :(得分: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>