我是android的新手,我正在通过创建各种基本应用程序来学习android来清除我的理解。我已经经历了android生命周期,所以我试着写下面的代码。
第一个是正常的 onCreate()方法,第二个刚刚创建 with onStart()方法,但没有onCreate()方法,但仍能正常运行,没有任何错误。
我的疑问:如果没有使用Activity作为超类的onCreate()方法,应用程序可以如何启动。根据生命周期没有错吗? (但它仍在工作!)
第一个:
import android.content.Intent;
import android.net.Uri;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:+91**********"));
startActivity(intent);
finish();
}
}
第二名:
import android.content.Intent;
import android.net.Uri;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onStart() {
super.onStart();
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:+91**********"));
startActivity(intent);
finish();
}
}
答案 0 :(得分:1)
如果没有onCreate()...
,应用程序如何启动
不会被覆盖,而是会调用 super Activity的 onCreate()
。
根据生命周期,这没有错吗?
从OOP的角度来看,你没有做错任何事。但是,从Activity's
生命周期的角度来看,不覆盖onCreate()
方法并不是“你应该做的”。您应该根据互联网上的official documentation或众多帖子坚持生命周期方法,以便正确管理活动状态。
例如,在您的情况下,您正在从不正当的Activity's
州拨打电话,除非您打算这样做。根据{{1}}生命周期,Activity's
方法只调用一次, - 在 Activity 实例创建时,而onCreate()
方法可能在其生命周期中被多次调用
答案 1 :(得分:0)
如果您删除OnCreate
,并不意味着不会调用此方法 - 您只是没有将其覆盖。
答案 2 :(得分:0)
不同之处在于onStart()
将在每次触发onRestart()时触发,例如,当您将活动从可见性中取出而不是将其恢复为可见性时。
onCreate()
只发生一次,活动创建,或杀死应用后重新创建。
而onStart()
发生在onCreate()
之后,正如您在this lifeCycle