ورود

View Full Version : کار با BroadcastReceiver



hosseinaryai
سه شنبه 11 فروردین 1394, 15:52 عصر
سلام دوستان
خب حتمن اکثر بجه ها برنامه های چت گروهی مثل وایبر روی گوشیشون نصبه ..
اینکه چطور گوشی از سرور اطلاعاتو میگیره مشکلی ندارم ..
مشکلم با اونجاشه که چطور انقدر آنلاین میگیره .. مثلن ما وقتی توی برنامه نیستیم و یکی یه مطلبی واسمون میفرسته یه پیغامی واسمون میاد ..
یکم سرچ زدم ، اینجور که من فهمیدم باید بوسیله BroadcastReceiver ، توی پس زمینه یه سری اتفاقاتی صورت بگیره ..
اما سازو کارشو دقیق نمی دونم ..
مثال می زنم .. من می خوام وقتی توی برنامه ام نیستم به ازای هر 30 ثانیه یه toast به کاربر نمایش داده بشه (این فقط و فقط یک مثاله)


public class ServiceReceiver extends BroadcastReceiver {
static int pStatus = 0;
Handler handler;

@Override
public void onReceive(Context context, Intent intent) {
handler = new Handler(context.getMainLooper());
final Timer tm = new Timer();
tm.scheduleAtFixedRate(new TimerTask(){
public void run() {
runOnUiThread(new Runnable(){
public void run() {
pStatus++;
if(pStatus==30){
pStatus = 0;
countcontac = 0;
Toast.makeText(context.getApplicationContext(),
"نشد که بشه",
Toast.LENGTH_SHORT).show();
}
}
});
}
public void runOnUiThread(Runnable r) {
handler.post(r);
}
}, 1, 1000);

}
}


و منیفستشم به اینصورته :



<receiver android:name=".ServiceReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>


اما ServiceReceiver اصلن شروع بکار نمی کنه .. جایی از مسیرو اشتباه رفتم ؟

omid_cr77
سه شنبه 11 فروردین 1394, 22:25 عصر
https://blog.nraboy.com/2014/10/use-broadcast-receiver-background-services-android/
از این لینک استفاده کن.همه کد هارو توضیح داده

omid_cr77
سه شنبه 11 فروردین 1394, 22:28 عصر
اونجایی که گفته // Do something here
toast رو بزار

storm_saeed
سه شنبه 11 فروردین 1394, 23:42 عصر
از پرمیشن
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
استفاده کردی ؟