Android and Flutter developer
آموزش برنامه نویسی اندروید | کار با Event Bus
سلام
امروز میخوام یه کتابخونه ی فوق العاده کاربردی رو بهتون معرفی کنم که خیلی جاها حجم کدنویسی شما رو به شدت پایین میاره.
کتابخونه ی EventBus، یه سیستم حرفه ای برای BroadCast کردن رویدادها به کار میره. شما در هرجای برنامه ( سرویس و ... ) میتونید یه اتفاق رو به هرجایی که Subscribe این اتفاق هست ارسال کنید. مثلا توی آموزش خواندن پیامک در اندروید که داشتیم شما میتونید این اتفاق رو خیلی راحت پس زمینه بررسی میکنیم و نتیجه رو میاریم رو UI و متن گرفته شده رو داخل تکست باکس قرار میدیم.
نحوه ی کار با کتابخونه EventBus :
1- نصب با Gradle:
compile 'org.greenrobot:eventbus:3.1.1'
نصب با Maven:
<dependency>
<groupId>org.greenrobot</groupId>
<artifactId>eventbus</artifactId>
<version>3.1.1</version>
</dependency>
2- ساخت مدل از اطلاعات:
ساخت مدل بستگی به خودتون داره اما برای پیامک، من مدل رو به این شکل ساختم:
public class SmsModel {
String text;
public SmsModel(String text) {
this.text = text;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
3- برای سپردن اطلاعات به EventBus:
EventBus.getDefault().post(new SmsModel(SOME_DATA_STRING));
4- حالا برای اینکه یه تابع رو subscribe این خبر کنیم تو اکتیویتی مورد نظر یه تابع مینویسیم با انوتیشن زیر:
@Subscribe
public void onRec(SmsModel model) {
txtCode.setText(model.getPercent());
}
5- نکته آخر اینکه توی اکتیویتی مورد نظر حتما این چند خط رو اضافه کنید:
@Override
public void () {
super.();
EventBus.getDefault().register(this);
}
@Override
public void () {
super.();
EventBus.getDefault().unregister(this);
}
تمام شد حالا شما با رخداد خاص تو مرحله 3 میتونید اطلاعات رو به هرجایی که خواستید بفرستید.
امیدوارم براتون مفید باشه
برای دیدن مطالب بیشتر به وب سایت hamyardeveloper.ir مراجعه کنید
مطلبی دیگر از این انتشارات
کلاس های جذاب رباتیک برای کودکان
مطلبی دیگر از این انتشارات
نشان دادن تمام منوها و زیر منوها از دیتابیس در لاراول
مطلبی دیگر از این انتشارات
آموزش برنامه نویسی PHP