关于Android应用程序的入口

版权声明:ThomasKwan https://blog.csdn.net/thomassamul/article/details/86630528

 Android应用程序,由一到多个Activity组成。每个Activity没有很紧密的联系,因为我们可以在自己的程序中调用其它Activity,特别是调用自己的代码之外生成的Activity,比如android提供的发短信或者打电话的Activity.

        Intent call = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phonenumber);

        startActivity(call);

       

        Intent sms = new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:"+phonenumber);

        startActivity(sms);

    从这点上看,Android应用程序实际上是由多个Activity按照一定的次序拼装起来的,只不过拼装的过程中,后台传递了一些数据,使得各个Activity之间能比较好的衔接起来。

   Android应用程序中,并没有像c++和java这样有main函数来作为应用程序的入口。Android应用程序提供的是入口Activity,而非入口函数。

  AndroidManifest.xml文件中定义了整个android应用所包含的Activity.默认生成的Activity的定义为:

        <activity android:name=".activity1" android:label="@string/app_name">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

action节点中的android.intent.action.MAIN表明它所在的Activity是整个应用程序的入口点。而category中的android.intent.category.LAUNCHER意思是把这个Activityg归属到加载器类。即把这个Activity标注为自动会加载和启动的Activity,这样程序启动时候就先加载这个Activity了。

参考手册上是这么说的----"the LAUNCHER category says that this entry point should be listed in the application launcher."

    把    <category android:name="android.intent.category.LAUNCHER" />这一行在原先的xml文件中注释掉了.可以看到控制台会报错"No Launcher activity found!"。

猜你喜欢

转载自blog.csdn.net/thomassamul/article/details/86630528