Это получатель
public class Alarm extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
wl.acquire();
NotificationClass.createNotification("Total Item In List is :"+Globals.productList.size(),context);
wl.release();
}
public void setAlarm(Context context) {
Log.i("ALARM", "Alarm has been set it");
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 * 1 * 1, pi);
}
public void cancelAlarm(Context context)
{
Log.i("ALARM","Alarm has been Cancel");
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);
}
Вот глобальный класс
public class Globals {
public static List <ProductClass> productList=new ArrayList<ProductClass>();
public static String testArray[]={"test1","test2","test3"};
}
Приложение не зависало, но функция onReceive Globals.productList.size возвращает 0, я могу получить данные из testArray,Массив productList также является статическим, и я могу получать данные из Globals.ProductList во всех действиях, кроме функции onReceuve.
Итак, как мне получить и получить данные из глобального статического ArrayList?
Класс MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GetDataClass.getAllData();
List <ProductList> pList=new ArrayList<ProductList>();
pList=GetDataClass.data;
for(int i=0;i<GetDataClass.data.size();i++)
{
ProductList temp=new ProductList();
temp.set(pList.get(i).pName,pList.get(i).stock,
pList.get(i).provider,pList.get(i).jk,pList.get(i).starCounter);
Globals.productList.add(temp);
}
Log.i("Count", String.valueOf(Globals.productList.size()));//Return Correct number.
Alarm alarm=new Alarm();
alarm.setAlarm(getApplicationContext());
}