现在的位置: 首页 > 综合 > 正文

live wallpaper

2013年10月10日 ⁄ 综合 ⁄ 共 1613字 ⁄ 字号 评论关闭

Service
类由一个service的main java类继承.Services像 activities一样
也有个生命周期,但较之要简单得多。 在这个周期中,当我们第一次创建service类时,
需要调用onCreate()的方法。而当我们消除该service时,则调用了onDestroy()方法。


而在这两者之间,当客户发出开始service的请求时,Android将调用 onStartCommand()方法 。当然Android也为我们提供一些其他的方法以备不时需,例如在内存低情况下使用的onLowMemory()方法,


我们这个例子中,不需要关心这些方法,因为他们都将由Service的子类WallpaperService 来处理。

   我们的main类需要扩展成Wallpaper,

  

  
import
android.service.wallpaper.WallpaperService;

 
  
public
  
class
  Wallpaper  
extends
  WallpaperService  {
  private class MyEngine extends Engine {
  // 从这里实现引擎。。。
  }
@Override
  public Engine onCreateEngine() {
  return new MyEngine();
}
}

我们现在要做的就是实现只有一行代码的onCreateEngine()方法。
它的唯一目的就是要创建并返回另一个叫做MyEngine的类。


构建一个绘图引擎

     因为这个MyEngine一定要是Wallpaper里的一个类,所以在类的封闭的大括号中声明了它。MyEngine 扩展了由Android提供的Engine类。

需要注意的是每个方法应该总是调用其基类方法。

   在Engine的整个生命周期中,Android会在特定的命令下调用这些方法。下面就是整个句子。

onCreate


     onSurfaceCreated


                  onSurfaceChanged (1+ calls in any order)


                  onOffsetsChanged (0+ calls in any order)


                  onVisibilityChanged (0+ calls in any order)


     onSurfaceDestroyed


onDestroy

 

接下来,我们将填写这些方法。不过我们还需要几个声明来防止编译出错

1
 import
  java.util.concurrent.ExecutorService;
2 import java.util.concurrent.Executors;
3 import javax.microedition.khronos.egl.EGL10;
4 import javax.microedition.khronos.egl.EGL11;
5 import javax.microedition.khronos.egl.EGLConfig;
6 import javax.microedition.khronos.egl.EGLContext;
7 import javax.microedition.khronos.egl.EGLDisplay;
8 import javax.microedition.khronos.egl.EGLSurface;
9 import javax.microedition.khronos.opengles.GL10;
10 import android.service.wallpaper.WallpaperService;
11 import android.view.SurfaceHolder;



原文完整版:http://www.cnblogs.com/ClassroomStudio/archive/2010/08/13/livewallpaper_2.html

抱歉!评论已关闭.