آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در BroadcastReceiver (فوری)

Neshat  4 سال پیش  4 سال پیش
0 0

سلام دوستان من مشغول ساخت یه نرم افزارم که میخوام بلافاصله بعد از روشن شدن گوشی به اکتیویتی مورد نظر من بره اما با کد هایی که تا حالا استفاده کردم حدود یک 20ثانیه یا بیشتر طول میکشه تا اینکارو بکنه لطفا کمک کنید خیلی ضروریه

0 0
دوستان یه جورایی مشکل فهمیدم مشکل اینه که گوشی باید تمام اطلاعات دریافت کنه بعد رسیور برنامه منو چک کنه اما میخوام بدونم روشی هست برنامه منو اولویت قرار بده؟ (4 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
jbRhmNqb  4 سال پیش
+1 0

فک میکنم باید با چند گوشی دیگه هم امتحان کنین چون تا جایی که اطلاع دارم این فقط یک راه داره و رسیورش هم یک چیز مشخص هست؛ احتمالا سرعت امولاتور پایین هست ولی رسیور و اینتنت فیلتر زیر رو هم چک کنین برای من که کار میکنه

 <receiver
            android:name="helper.BootCompleteReceiver"
            android:enabled="true" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.QUICKBOOT_POWERON" />
            </intent-filter>
</receiver>

 

 

 package helper;

import activity.ActivityNews;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.util.Log;


public class BootCompleteReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getExtras().containsKey("NEXT_ALARM")) {
            showNotification(context, intent.getExtras().getInt("ID"), intent.getExtras().getString("TITLE"), intent.getExtras().getString("MESSAGE"));
        } else {
            Log.i("LOG", "booted");
            // startActivity(context);
        }
    }


    private void startActivity(Context context) {
        Intent myIntent = new Intent(context, ActivityNews.class);
        myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(myIntent);
    }


    private void showNotification(Context context, int id, String title, String content) {
        PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(context, activity.ActivityStartup.class), 0);
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context).setSmallIcon(android.R.drawable.btn_star).setContentTitle(title).setContentText(content);
        mBuilder.setContentIntent(contentIntent);
        mBuilder.setDefaults(Notification.DEFAULT_SOUND);
        mBuilder.setAutoCancel(true);
        NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        mNotificationManager.notify(id, mBuilder.build());
        G.setNextAlarm(context, id);
    }

}

0 0
ممنون بابت جواب ولی با گوشی های هواویmate8 و s8 انتحان کردم! (4 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .