いくら検索しても乗り越えられない。
私はAlarmManagerを持っており、X秒ごとにAsyncTaskを開始したいと思っています。
onReceiveがある別のファイルclass(Alarm.class)があります。その中に何を入れても、完全にアクティブになります。
今、私は問題を抱えています。メインスレッド/クラス(Onime)にAsyncTaskwhatsがあります。一部のコンテンツのダウンロードなど、多くのタスクを実行します。
ここで問題となるのは、別のクラスからそのAsyncTaskを開始するにはどうすればよいかということです。asycには静的を許可しないものがいくつか含まれていたため、残念ながら静的は機能しませんでした。なんらかのサービスで可能ですか
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);
}
}
それはアラームクラスです。
これがAsyncです(Onime.class(別のファイル)にあります:
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());
}
}
}