第三章:Creating Applications and activities-(七)介绍Android应用的class

1.1 介绍Android应用的class

继承Application类并编写自己的实现,你需要做三件事

1、维护application状态

2、在application组件间传递对象

3、通过几个application组件管理和维护资源

当你Application的实现在manifest中注册了,当你application进程创建的时候,他就会被初始化。你的Application实现是一个单例模式,并且你应该提供访问他和成员变量的方法。

1.1.1 继承和使用Application class

Listing3-7展示了一个继承了Application的单例的实现骨架:

图 Listing 3-7


一旦被创建了,你必须在manifest中的<application>节点注册你的新Application 类,如下代码所示:

<application android:icon="@drawable/icon"

   android:name="MyApplication">

   [... Manifest nodes ...]

</application>

你的Application实现将会在application开始的时候被初始化。在application组件中可以创建访问新的状态变量和全局资源。

MyObject value = MyApplication.getInstance().getGlobalStateValue();

MyApplication.getInstance().setGlobalStateValue(value);

这是一个在松耦合组件间传递对象,特别有效的方法,或者用来维护application的状态或者用来共享资源

1.1.2 覆盖Application生命周期事件

Application类也为application创建、终止、低内存、配置改变等状态提供事件处理方法。

通过覆盖这些方法,你可以为下边的情况实现自己特定的应用行为。

· onCreate:当应用创建时候被调用。通过覆盖这个方法可以去初始化应用的单例并且可以初始化应用的状态,共享资源。

· onTerminate:当应用对象被终止的时候调用。注意这个方法不保证会被调用。当应用被系统的内核程序因为释放资源给终止了,那么在应用对象终止的时候就不会调用这个方法。

· onLowMemory:为系统应用程序表现良好提供了更多内存,当系统内存较低的时候使用。这个一般会在后台应用已经被终止了,但是当前的前端应用还是在较低内存下运行时候被调用。可以覆盖这个方法去清除缓存或者释放不需要的资源。

· onConfigurationChanged:不像Activities,你的应用对象在配置改变的时候不会被killed或者重启。覆盖这个处理方法可以去处理应用级别的配置改变。

如图Listing 3-8所示,你必须在覆盖父类的方法中调用父类的事件处理。

图 Listing 3-8



转载于:https://my.oschina.net/abcijkxyz/blog/722205

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
检查错误原因 creating directory /data/primary/gpseg0 ... ok creating subdirectories ... ok selecting default max_connections ... 750 selecting default shared_buffers ... 125MB selecting default timezone ... Asia/Shanghai selecting dynamic shared memory implementation ... posix creating configuration files ... ok creating template1 database in /data/primary/gpseg0/base/1 ... child process was terminated by signal 9: Killed initdb: removing data directory "/data/primary/gpseg0" 2023-06-08 08:53:53.568563 GMT,,,p22007,th-604637056,,,,0,,,seg-10000,,,,,"LOG","00000","skipping missing configuration file ""/data/primary/gpseg0/postgresql.auto.conf""",,,,,,,,"ParseConfigFile","guc-file.l",563, 20230608:16:54:12:021728 gpcreateseg.sh:VM-0-5-centos:gpadmin-[INFO]:-Start Function BACKOUT_COMMAND 20230608:16:54:12:021728 gpcreateseg.sh:VM-0-5-centos:gpadmin-[INFO]:-End Function BACKOUT_COMMAND 20230608:16:54:12:021728 gpcreateseg.sh:VM-0-5-centos:gpadmin-[INFO]:-Start Function BACKOUT_COMMAND 20230608:16:54:12:021728 gpcreateseg.sh:VM-0-5-centos:gpadmin-[INFO]:-End Function BACKOUT_COMMAND 20230608:16:54:12:021728 gpcreateseg.sh:VM-0-5-centos:gpadmin-[FATAL][0]:-Failed to start segment instance database VM-0-5-centos /data/primary/gpseg0 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-End Function PARALLEL_WAIT 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-End Function PARALLEL_COUNT 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-Start Function PARALLEL_SUMMARY_STATUS_REPORT 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:------------------------------------------------ 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-Parallel process exit status 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:------------------------------------------------ 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-Total processes marked as completed = 0 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-Total processes marked as killed = 0 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[WARN]:-Total processes marked as failed = 1 <<<<< 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:------------------------------------------------ 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-End Function PARALLEL_SUMMARY_STATUS_REPORT FAILED:VM-0-5-centos~6000~/data/primary/gpseg0~2~0
06-09

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值