Majid Ebrahimi

قرار دادن بک گراندهای دلخواه به صورت دوره ای

6 ارسال در این موضوع قرار دارد

سلام دوستان.من می خواستم نرم افزارم  طوری اجرا بشه که مثلا هر  سه دقیقه یک بار بک گراند عوض بشه. کد زیر رو هم توی سایت استک اورفلو پیدا کردم.اما نمی دونم چطور از آن استفاده کنم.

لطفا اگر کد صحیح است کمک کنید.

public class Wallpaper extends Service {   Timer            mytimer;   int              interval = 60000;   Drawable         drawable;   WallpaperManager wpm;   int              prev     = 1;   @Override   public void onCreate() {       super.onCreate();       mytimer = new Timer();       wpm = WallpaperManager.getInstance(Wallpaper.this);   }   @Override   public int onStartCommand(Intent intent, int flags, int startId) {       mytimer.schedule(new TimerTask() {           @Override           public void run() {               if (prev == 1) {                   drawable = getResources().getDrawable(R.drawable.two);                   prev = 2;               }               else if (prev == 2) {                   drawable = getResources().getDrawable(R.drawable.three);                   prev = 3;               }               else {                   drawable = getResources().getDrawable(R.drawable.one);                   prev = 1;               }               Bitmap wallpaper = ((BitmapDrawable) drawable).getBitmap();               try {                   wpm.setBitmap(wallpaper);               }               catch (IOException e) {                   e.printStackTrace();               }           }       }, 200, interval);       return super.onStartCommand(intent, flags, startId);   }   @Override   public IBinder onBind(Intent arg0) {       return null;   }}

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سرویس را در Activity خود ،در یک Handler قرار بدین تا هر سه دقیقه یکبار برنامه این قسمت را اجرا کند.

private void check() {        final Handler handler = new Handler();        final Thread r = new Thread() {            public void run() {                Intent intent = new Intent(this,                        Service_class.class);                PendingIntent pintent = PendingIntent.getService(                        NoteActivity.this, 0, intent, 0);                                handler.postDelayed(this, 1200000);            }        };        r.start();    }

این کد هر دو دقیقه یکبار اجرا خواهد شد،شما Time مورد نظر خود را قرار بدهید

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خیلی ممنون از پاسختون.ولی وقتی متد بالا را اضافه و برنامه رو ران کردم.دو خطا رخ داد.اگر کمک کنید ممنون میشم.

              NoteActivity cannot be resolved to a typethe constructor Intent(new Thread(){},class

کدی که برای کلاس wallpaper گذاشته بودم درست هست؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خب noteActivity رو بردارید و اسم کلاس خودتون رو جایگزین کنید.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

این کار را کردم اما درست نشد.نظرتون در مورد خطای دوم چیه؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

بدین صورت عمل کنید :

      Intent intent = new Intent(this,                        Service_class.class);                PendingIntent pintent = PendingIntent.getService(                        NoteActivity.this, 0, intent, 0);

بجای Service_class اسم سرویس خودتون را بنویسید تا بعد از دو دقیقه سرویس مربوطه اجرا شود.

سپس به جای noteActivity.this اسم اکتیویتی جاری خود را بنویسید.

لطفا کلاس سرویس خود را که نوشته اید در انجمن قرار دهید.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری