قطعه کدهای مفید برنامه نویسی اندروید
#1
در این تاپیک قطعه کدهای کوتاه و مفید و کاربردی به زبان جاوا و یا ساختار XML برای برنامه نویسی اندروید قرار داده میشن.
لطفا هر قطعه کد رو به صورت جداگانه قرار بدید و به زبان فارسی اندکی در موردش توضیح بنویسید.
در ضمن لطفا هر قطعه کد در ارسالی جداگونه قرار بگیره. ممنون.
به منظور قدردانی از ارسال‌های مفید فقط از دکمه «تشکر» استفاده نمایید.
تاثیر افزونه Alexa بر روی آمار سایت | طراحی سایت در گیلان | خرید شماره ارسال و دریافت پیامک
پاسخ
#2
گاهی اوقات پیش میاد که لازمه زمانی که برنامه در حال اجرا نیست هم کاری در پس زمینه انجام شود. مثلا فرض کنید که لازم است ورژن نرم افزار چک شود و اگر ورژن تازه‌ای موجود بود پیغام داده بشه که برنامه رو آپدیت کنید و...
برای انجام این کار دو روش معمول وجود دارد. یکی ساخت سرویسی است که در پس زمینه اجرا شود و دیگری استفاده از آلارم هست.
روش اول معمولا روش مناسبی نیست چون اگر بنا به هر دلیلی سرویس بسته و یا مسدود شود دیگر کار نخواهد کرد.
روش مرسوم استفاده از «گیرنده آلارم» هست. گیرنده آمار شبیه به یک وقفه عمل می‌کند، پس از اینکه زمان به چیزی که شما تعیین کردید رسید خود به خود سیگنالی به برنامه‌تون ارسال میشه و کد مورد نظر شما اجرا میکنه.
در ضمن مزیت دیگه آلارم اینه که در زمانی که داره ازش استفاده نیمشه رم گوشیتون رو هم اشغال نمیکنه.
خب حالا برای استفاده از آلارم باید چیکار کرد؟
مناسب‌ترین روش اینه که اول یک کلاس ارث برده از BroadcastReceiver ایجاد کنید. من اسم کلاسم رو Alarm گذاشتم. سپس به شکل زیر محتوای کلاستون رو تکمیل کنید:

کد:
package co.jangal.alarm;

/**
* Created by Arma on 01/06/2016.
*/
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class Alarm extends BroadcastReceiver {
   @Override
   public void onReceive(Context context, Intent intent) {
       Toast.makeText(context, "Alarm!!!", Toast.LENGTH_SHORT).show();
   }

   public void SetAlarm(Context context) {
       AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
       Intent i = new Intent(context, Alarm.class);
       PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
       am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 * 1, pi); // Millisec * Second * Minute
   }

   public void CancelAlarm(Context context) {
       Intent intent = new Intent(context, Alarm.class);
       PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0);
       AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
       alarmManager.cancel(sender);
   }
}

این کد هر ۱ دقیقه یک بار قراره که محتوای درون تابع onReceive رو اجرا کنه. من در اینجا گفتم که به عنوان تست یه Toast نشون بده.

گام بعدی اینه که توی برنامه‌تون از این کلاس استفاده کنید.

کافیه که یک جایی از برنامه‌توی یک شی از کلاسی که ساختید بسازید و سپس SetAlarm رو روی اون شی انجام بدید. یعنی مثلا:

کد:
package co.jangal.alarm;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

       Alarm alarm = new Alarm();
       alarm.SetAlarm(getApplicationContext());
   }
}

و همینطور برای کنسل کردن آلام می‌تونید یک شی بسازید و بعد CancelAlarm رو فراخوانی کنید.

در نهایت لازمه که کد زیر رو به AndroidManifest.xml برنامه‌تون و در بین تگ‌های <application> اضافه کنید.

کد:
<receiver android:name=".Alarm"></receiver>

با توضیحاتی که دادم دوستاین که تجربه قبلی برنامه‌نویسی اندروید دارن به راحتی می‌تونن آلارم رو پیدا سازی کنن.

ولی اگر کسی در مورد نحوه مراحل پیاده‌سازیش سؤالی داشت حتما یک تاپیک جداگونه بزنه که من اونجا کامل بهش توضیح بدم.

در ضمن پروژه کامل این برنامه برای اندروید استودیو هم ضمیمه شده.


فایل‌های پیوست
.zip   Alarm.zip (اندازه 4.35 MB / تعداد دانلود: 1)
به منظور قدردانی از ارسال‌های مفید فقط از دکمه «تشکر» استفاده نمایید.
تاثیر افزونه Alexa بر روی آمار سایت | طراحی سایت در گیلان | خرید شماره ارسال و دریافت پیامک
پاسخ


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  کتابخانه‌های مفید اندروید ehsan 6 5,588 01-Feb-2017, 08:22 PM
آخرین ارسال: ehsan
  تغییر زبان دستگاه های اندروید درون برنامه : hossein 0 1,158 22-Jan-2017, 10:24 AM
آخرین ارسال: hossein
  افزودن کتابخانه های اندروید به اندروید استودیو hossein 0 1,203 14-Jan-2017, 11:06 AM
آخرین ارسال: hossein
  برنامه نویسی اندروید – محیط توسعه hossein 0 997 28-Dec-2016, 11:05 AM
آخرین ارسال: hossein

پرش به انجمن:


کاربران در حال بازدید این موضوع: 2 مهمان