android中静态和主要的意义

时间:2013-08-01 22:06:04

标签: android

我将从android的简单程序开始:

public class MyClass extends Activity
{ 
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main)
    }
}

我的问题是为什么我们不在Java中使用staticpublic void onCreate(Bundle savedInstanceState)一样,为什么没有main函数呢?

2 个答案:

答案 0 :(得分:1)

main是桌面应用程序的Java约定,它围绕应用程序的历史概念构建,该应用程序从A点(主要的第一行)开始,然后转到B点(从main返回)然后停止。

Android应用程序在非常不同的环境中运行。这是非常多的事件驱动。它不是主要的,而是一个Looper(事件循环的android版本)。你编写的代码在事件发生时响应事件,而不是将命令行参数和文件转换为输出。

答案 1 :(得分:0)

我不是专家,但这里有一个很长的答案。或者答案。

答案1:Android可能使用实例方法,因为Java是针对实例方法和字段而设计的。我认为实例比静态更好。

那么,为什么传统的计算机程序有一个静态的“main()”?

答案2:可能是因为当JVM被启动时,没有任何实例,所以设计者认为最初调用的方法应该是静态的。

这让我们看到了你可能正在寻找的区别:为什么移动计划与传统计划不同?

答案3:传统程序的生命周期比移动应用程序简单得多。传统程序启动,运行和退出。在Java中,JVM以它开始并消亡。 Android应用程序的生命周期要复杂得多。 JVM可以在用户多次进入和退出应用程序后继续存在。并且活动非常轻量级 - 将您的设备从横向旋转到纵向,并且活动被杀死并且新的活动开始。有关活动生命周期的更多信息,请参阅http://developer.android.com/training/basics/activity-lifecycle/index.html

考虑一个网络服务器。这是一个长时间运行的进程,它使用每个请求的实例方法调用应用程序层代码。我会说Android应用程序大约介于两个生命周期模型之间:传统程序和Web应用程序请求。

(我在这里做了一些全面的陈述。准确了解细节会发布更长的帖子。)