android - onCreateEngine in Wallpaper Service not getting called -


i'm trying create simple android application create live wallpaper. have created activity , i'm starting wallpaper service oncreate method of activity.for now, i'm using logcat monitor if service has started. i'm facing problem oncreateengine of wallpaperservice not getting called due no instance of engine created. have checked existing posts no 1 seemed having same problem.

main activity

package com.example.rajeev.mylivewallpaperapplication;  import android.app.activity; import android.app.wallpapermanager; import android.content.componentname; import android.content.intent; import android.os.build; import android.os.bundle; import android.service.wallpaper.wallpaperservice; import android.util.log; import android.view.menu; import android.view.menuitem;   public class mainactivity extends activity {      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);         log.d("tag","starting service");         intent = new intent(this, mywallpaperservice.class);         if (build.version.sdk_int > 15)         {             i.setaction(wallpapermanager.action_change_live_wallpaper);             string pkg = wallpaperservice.class.getpackage().getname();             string cls = wallpaperservice.class.getcanonicalname();             i.putextra(wallpapermanager.extra_live_wallpaper_component, new componentname(pkg, cls));         }         else         {             i.setaction(wallpapermanager.action_live_wallpaper_chooser);         }         //startactivity(i);         startservice(i);         //startactivityforresult(i, 0);          //startservice();     }       @override     public boolean oncreateoptionsmenu(menu menu) {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.menu_main, menu);         return true;     }      @override     public boolean onoptionsitemselected(menuitem item) {         // handle action bar item clicks here. action bar         // automatically handle clicks on home/up button, long         // specify parent activity in androidmanifest.xml.         int id = item.getitemid();          //noinspection simplifiableifstatement         if (id == r.id.action_settings) {             return true;         }          return super.onoptionsitemselected(item);     }      @override     public void ondestroy(){         super.ondestroy();         stopservice(new intent(this, mywallpaperservice.class));     } } 

mywallpaperservice class

package com.example.rajeev.mylivewallpaperapplication;  import android.graphics.canvas; import android.os.handler; import android.service.wallpaper.wallpaperservice; import android.util.log; import android.view.surfaceholder;  /**  * created rajeev on 30/5/15.  */ public class mywallpaperservice extends wallpaperservice{     private  string tag = "my wallpaper application";     @override     public void oncreate(){         super.oncreate();         log.d(tag,"inside oncreate");     }      @override     public engine oncreateengine() {         log.d(tag,"creating engine");         return new myengine();     }      @override     public void ondestroy(){         super.ondestroy();         log.d(tag,"inside ondestroy");     }       class myengine extends engine{         private handler handler;         private surfaceholder holder;          public myengine(){             log.d(tag,"inside constructor of engine");             handler = new handler();             handler.post(drawfigure);         }          @override         public void oncreate(surfaceholder surfaceholder) {             log.d(tag,"created engine");             super.oncreate(surfaceholder);             this.holder = surfaceholder;         }         private runnable drawfigure = new runnable() {              public void run() {                 draw();             }         };          private void draw() {             canvas canvas = holder.lockcanvas();             canvas.save();             // adjust size , position             // image looks on screen             canvas.scale(3f, 3f);             canvas.drawrgb(0,0,0);             canvas.restore();             holder.unlockcanvasandpost(canvas);             handler.removecallbacks(drawfigure);             handler.postdelayed(drawfigure, 100);          }         @override         public void ondestroy() {             super.ondestroy();             handler.removecallbacks(drawfigure);         }          @override         public void onvisibilitychanged(boolean visible) {             handler.removecallbacks(drawfigure);             handler.postdelayed(drawfigure, 100);         }      } } 

manifest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.example.rajeev.mylivewallpaperapplication" >      <application         android:allowbackup="true"         android:icon="@mipmap/ic_launcher"         android:label="@string/app_name"         android:theme="@style/apptheme" >         <uses-feature             android:name="android.software.live_wallpaper"             android:required="true" >         </uses-feature>          <activity             android:name=".mainactivity"             android:label="@string/app_name" >             <intent-filter>                 <action android:name="android.intent.action.main" />                  <category android:name="android.intent.category.launcher" />             </intent-filter>         </activity>         <service             android:name=".mywallpaperservice"             android:enabled="true"             android:permission="android.permission.bind_wallpaper" >             <intent-filter>                 <action android:name="android.service.wallpaper.wallpaperservice" />             </intent-filter>         </service>     </application>  </manifest> 


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -