如何定义全局的context
1.Context必须在活动中才可以获得,如果脱离活动将无法被引用。
2.Application类是管理和设定这个全局context的类。需要我们创建一个类去继承Application,然后建立一个onCreate方法调用getApplicationContext得到一个应用程序级别的Context.再建立一个getcontext静态方法进行返回。最后再配置文件AndroidMainfest.xml里进行配置。要完整的包名+类名。
3.一个项目中只能有一个Application如果需要多个,其它的必须以参数的形式定义如 LitePal.具体实现如LitePalApplication.initialize(Context);
使用Intent传递对象
1.使用Intent传递对象的方式有两种。Serializable和parcelablc两种方式。
1.1Serializable是一种序列划的意思。实现序列化的方式是让一个类去实现Serializable的接口即可。序列化的意思是将一个对象转变成可储存可传输的状态。通过这种方式传递后在接受数据的活动中我们调用了getSerializableExtra()来获取序列化后的对象如person person=(person)getIntent().getSerializableExtra()。
1.2 Parcelable:原理是把对象进行分解,分解成为Intent所支持的类型。
创建定时任务
主要用AlarmManager类实现,通过调用Context的getSystemService()方法来获取实例。
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
获取到实例后,调用AlarmManager的set()方法就可以设置一个定时任务。
manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,SystemClock.elapsedRealtime()+10*1000,pendingIntent);
set()方法有三个参数:
参数一:整型 AlarmManager的工作模式/类型。
有四种类型可选:
ELAPSED_REALTIME 表示让定时任务的触发时间从系统开机开始算起 不会唤醒CPU
ELAPSED_REALTIME_WAKEUP 同上 但是会唤醒CPU
RTC 表示让定时任务的出发时间从1970/1/1 00:00开始算起 不会唤醒CPU
REC_WAKEUP 同上 会唤醒CPU
使用SystemClock.elapsedRealtime()方法可以获取到系统开机至今所经历时间的毫秒数。
使用System.currentTimeMillis()方法可以获取到1970/1/1 00:00至今所经历时间的毫秒数。
参数二:长整型 任务触发的事件,单位是毫秒。
这个一看就懂,古不做记录
参数三:延迟意图 PendingIntent
调用 getService()/getBoradcast() 来获取一个能够被执行的PendingIntent。
当定时任务被触发时,服务在onStartCommand()方法/广播接收器的onReceive()方法 中执行。
## 禁止用多窗口模式
只需要在配置文件中配置如下代码android:resizeableActivity="true"或者false.
设置手机横竖屏android:screenOrientation="portrait"或landscape(横屏)