Can't get over it, no matter how much I search.
I have AlarmManager, where I want to start AsyncTask after every X seconds.
I do have another file, class (Alarm.class) where I have onReceive. Whatever I put inside it, will get activated perfectly.
Now I have problem. I have AsyncTask whats in my main thread/class (Onime). It does many tasks, including downloading some content.
Now problem is, how can I start that AsyncTask from another class. Sadly static didnt work, because asyc included some stuff what doesn't allow static. Is it possible via some kind of service
public class Alarm extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
// Put here YOUR code.
Log.d("alarminfo", "Alarm works!");
}
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);
Calendar time = Calendar.getInstance();
time.setTimeInMillis(System.currentTimeMillis());
time.add(Calendar.SECOND, 30);
am.setRepeating(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), 1000*60*1, pi); // Millisec * Second * Minute
Log.d("alarminfo", "Set alarm!");
}
public void CancelAlarm(Context context)
{
Log.d("alarminfo", "End alarm!");
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);
}
}
Thats Alarm Class.
Here is Async (Its in Onime.class (different file):
class animeUpdator extends AsyncTask<ArrayList<Anime>, Integer, String> {
class Connection implements Runnable {
public void run () {
try {
URL url = new URL("http://xxx.com");
URLConnection urlConnection = url.openConnection();
BufferedReader bufferedReader =
new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line;
count = 1;
anime_list.clear();
while ((line = bufferedReader.readLine()) != null) {
parsingAnime(line);
count += 1;
}
bufferedReader.close();
MessageToMainThread(UPDATE_MAIN_GUI);
} catch(Exception e) {
Log.d("readInfo", e.toString());
}
}
}