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,而非入口函数.
在eclipse中创建一个android应用程序的时候,默认会创建一个Activity.这个Activity实际上就是入口Activity了.从哪里定义它是Activity呢?AndroidManifest.xml文件中定义了整个android应用所包含的Activity.默认生成的Activity的定义为:
<activity android:name=".activity01" 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."意思和我理解的有出入.不过意思都是说这个Activity要被应用程序加载.
我们可以对比下eclipse中console端输出的日志来看下.初始,我把 <category android:name="android.intent.category.LAUNCHER" />这一行在原先的xml文件中注释掉了.可以看到控制台会报错"No Launcher activity found!",实际上此时在虚拟设备上的应用程序列表中找不到"lifecycle_test"这个app,而且也没法运行,根本加载不起来.后面把注释去掉,还原到最初始的状态,然后在启动应用,可以看到"No Launcher activity found!"这部分报错信息没有了,而且虚拟设备的屏幕上,可以看到"lifecycle_test"这个app已经成功运行了.
相关推荐
在Android开发中,获取应用程序的包名、入口Activity和版本信息是常见的需求,这对于调试、统计分析或权限管理等场景非常关键。以下是对这个"获取app版本_包名_入口Activity"主题的详细解释。 首先,我们要理解这些...
然而,有时候开发者可能需要在不改变原始Activity的基础上实现不同的功能或者提供不同的入口,这时Android系统提供的Activity别名(Activity-alias)就能派上用场。本文将详细讲解如何在Android中使用Activity别名,...
2. **main.cpp**:这是你的主要入口点,通过调用ANativeActivity_onCreate方法初始化Native Activity。在这个函数中,你可以设置视图、处理事件等。 3. **SurfaceView**: 在Native Activity中,通常需要自己管理...
这里声明了一个名为`TargetActivity`的Activity,`ACTION_MAIN`和`CATEGORY_LAUNCHER`组合使得该Activity能够作为应用的入口点。 5. 处理返回结果: 如果目标Activity需要返回结果给源Activity,可以使用`...
这段代码声明了一个名为HelloActivity的Activity,并设置了它是应用程序的入口点。 接下来,我们会在HelloActivity对应的Java类中编写代码。这个类通常会继承自Android的Activity基类,并覆盖其生命周期方法。例如...
要实现Activity切换动画,我们需要在AndroidManifest.xml文件中为每个Activity定义入口动画(enter animation)和退出动画(exit animation)。这些动画可以通过在<activity>标签内添加<activity android:theme="@...
`onCreate()`方法在Activity首次创建时调用,它是初始化Activity的入口点,通常用来设置布局、初始化数据和资源。`onStart()`紧接着`onCreate()`,使得Activity对用户可见,但还没有焦点。`onResume()`使Activity...
Activity作为应用程序的主要入口点,而Fragment则作为可重用的UI块,可以在多个Activity之间切换或组合。然而,在使用Fragment时,有时会出现一个问题:当Activity由于配置更改(如屏幕旋转)等原因需要重建...
在Android应用开发中,"动态设置启动的第一个Activity"是一个高级且实用的技术,它允许开发者根据特定条件或用户需求在运行时动态地改变应用程序的入口点。通常,AndroidManifest.xml文件中定义了应用的启动Activity...
Activity作为应用程序的主要入口点,而Fragment则可以看作是Activity中的可重用模块,它们共同构建了丰富的用户界面。当需要在Activity与Fragment之间进行数据传递时,有多种方法可以实现。下面我们将详细探讨...
在Android应用开发中,`Activity`是至关重要的一个组件,它是用户界面的入口点,用于展示应用程序的不同屏幕或“视图”。本篇将深入讲解`Activity`的基本概念、生命周期以及如何创建和使用`Activity`,并结合提供的...
此模式常用于应用的主入口点或者需要独立任务环境的Activity。 4. singleInstance(单实例模式) 这是最严格的启动模式,它不仅要求Activity在单独的任务栈中,而且这个任务栈只能包含该Activity的一个实例。这意味...
- **singleTask**:常用于应用主入口或者希望独立于现有任务栈的Activity,如浏览器的主页面。 - **singleInstance**:适用于需要独立运行且不希望与其他Activity共享数据的Activity,比如音乐播放器。 5. **注意...
主Activity是程序的入口点,通常在AndroidManifest.xml中通过设置`<intent-filter>`的`ACTION_MAIN`和`CATEGORY_LAUNCHER`属性来声明。例如: ```xml <activity android:name=".MainActivity" android:label="@...
本集视频“042集-跨进程启动Activity和设置Activity多个入口”将深入探讨如何在不同进程中启动Activity以及如何为Activity设置多个入口点,这在构建复杂和大型的Android应用时是非常关键的技能。 首先,我们要理解...
总之,`SingleTask`启动模式在Android开发中扮演着重要的角色,尤其适用于那些需要独立任务环境或者作为应用入口的Activity。正确理解和运用这一模式,可以更好地设计和实现Android应用的架构。
为了实现这种效果,开发者需要在`AndroidManifest.xml`中为Activity指定相应的入口动画,并在代码中控制动画的执行顺序。 总之,Android Activity的切换动画是提高应用用户体验的重要手段,通过自定义动画资源和...
通常,我们不希望混淆应用的主要入口点,如Activity和Application,因为它们需要被系统识别。可以通过以下规则避免混淆特定的Activity和Application: ``` -keep public class com.yourpackage.YourActivity { ...
`MainActivity`是应用的入口点,通常包含一个`onCreate`方法,这是Activity生命周期中的第一个方法。在这里,我们可以通过`setContentView(R.layout.activity_main)`将XML布局文件加载到Activity中。布局文件通常...
4. 在AndroidManifest.xml中声明NativeActivity,并指定其对应的类名和入口点。 5. 在运行时,Android系统会调用预先注册的本地方法,启动NativeActivity并处理用户输入。 NativeActivity的优点在于提高了性能和...