使用 AlarmManager 进行广播以调用 activity
Broadcasting with AlarmManager to call activity
我想使用警报管理器调用另一个 activity 中的方法
我用广播呼叫报警器管理员
我只想调用 activity 没有 ui 的警报(只是警报方法)
我不想打开 ui,
我该怎么办?
public class ReciveData extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
Intent myIntent = new Intent(G.context, ActivityAlarm.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(G.context, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
G.alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 2000, 3000, pendingIntent);
}
}
还有这个:
public class ActivityAlarm extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
alarm();
}
public void alarm() {
Log.i("LOGALARM", "Hello");
}
}
((ActivityAlarm) getActivity()).alarm();
这应该适合你。
要在没有 UI 的情况下调用它,您应该使用 BroadcastReceiver
或 Service
,而不是 Activity
:
而不是这个:
Intent myIntent = new Intent(G.context, ActivityAlarm.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(G.context, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
你应该这样称呼:
Intent myIntent = new Intent(G.context, YourReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(G.context, 0, myIntent, 0);
有了这个就不会有UI(因为它不会启动activity),你可以把alarm
方法放到你的BroadcastReceiver
有关 BroadcastReceiver
的更多信息:https://developer.android.com/reference/android/content/BroadcastReceiver.html
我想使用警报管理器调用另一个 activity 中的方法 我用广播呼叫报警器管理员 我只想调用 activity 没有 ui 的警报(只是警报方法) 我不想打开 ui, 我该怎么办?
public class ReciveData extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
Intent myIntent = new Intent(G.context, ActivityAlarm.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(G.context, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
G.alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 2000, 3000, pendingIntent);
}
}
还有这个:
public class ActivityAlarm extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
alarm();
}
public void alarm() {
Log.i("LOGALARM", "Hello");
}
}
((ActivityAlarm) getActivity()).alarm();
这应该适合你。
要在没有 UI 的情况下调用它,您应该使用 BroadcastReceiver
或 Service
,而不是 Activity
:
而不是这个:
Intent myIntent = new Intent(G.context, ActivityAlarm.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(G.context, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
你应该这样称呼:
Intent myIntent = new Intent(G.context, YourReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(G.context, 0, myIntent, 0);
有了这个就不会有UI(因为它不会启动activity),你可以把alarm
方法放到你的BroadcastReceiver
有关 BroadcastReceiver
的更多信息:https://developer.android.com/reference/android/content/BroadcastReceiver.html