假设我有一个JavaScript函数doWork(),它返回一个承诺,在工作完成后解析。
在我的主要业务逻辑中,我可以轻松地使用它:
//main program
doWork()
.then(foo => {
//do something when the work is finished
})
.catch(bar => {
//handle errors
});
那很容易。
但是,假设我有一个WorkingFlagService,它管理一个全局标志,指示当前是否正在执行工作。(我不想将此功能构建到doWork()函数中,因为实际上有许多类似的doWork()函数;它们
我正在尝试使用WorkManager每2小时从Firebase存储下载一个压缩文件。下面是dowork函数。
override fun doWork(): Result {
val storage = FirebaseStorage.getInstance()
val storageRef = storage.reference
val pathReference = storageRef.child("customerdata.zip")
Log.v("SysLog", "File download starting.
我正在尝试每隔一小时定期运行一次api调用。我知道周期性请求的最小时间间隔是15分钟,我绝对保留了更多。 下面是我运行定期请求的代码 val data = Data.Builder().putString(
"covid_country",
viewModel?.getSavedCountry()
).build()
val request =
PeriodicWorkRequest.Builder(CovidWorker::class.java, 1, TimeUnit.HOU
我正在使用工作经理的一次性请求来执行任务。首先,报警管理器在给定的频率内接到呼叫,然后从报警管理器接收类调用工作经理类。所有代码都正常工作,但是突然之间工作经理doWork没有被调用。流一直到报警管理器接收,但没有进一步进行。
警报管理器接收类
public class WorkAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final String TAG = "WorkAlarmReceiver";
我已经在我的项目中实现了WorkManager。在完成了doWork()中的任务之后,我给stop(true);打了电话,并向onStopped()中的另一个活动发送了广播。一切正常,但问题是onStopped()被称为两次(我通过应用断点进行了测试)。因此,BroadcastReceiver也被调用了两次。
我知道WorkManager正处于阿尔法阶段。但我不确定这到底是个bug还是我做错了什么。请帮帮忙。守则如下:
public Result doWork() {
startGettingData();
stop(true);
return Result.SU
我正在为android使用kotlin,我正在尝试创建一个泛型Worker类,在这个类中,我可以传递一个lambda,它可以从doWork()方法中调用。
class BaseWorker(val context: Context, workerParams: WorkerParameters) : Worker(context, workerParams) {
override fun doWork(): Result {
//Passed from the activity while creating the work request
someL
我实现了独特的周期工作管理器,每隔15分钟将一些数据发送到Firebase数据库,但似乎没有在小米手机上工作。
它正在一个仿真器上工作,而不是在中国定制ROM手机上工作。
附加在我的代码下面,以检查我是否做错了什么
内部活动:
Constraints constraints = new Constraints.Builder()
.setRequiresCharging(false)
.build();
final PeriodicWorkRequest periodicWorkRequest1 = new Pe
我刚开始使用安卓系统中的工作管理器,我想在收到服务器的响应后更新PeriodicWorkRequest的timeInterval。下面是我尝试更新timeInterval的示例代码。但是调用doWork()函数会进入无限循环。请告诉我哪里错了。 class RandomNumberGenerator(context: Context, workerParams: WorkerParameters) : Worker(
context,
workerParams) {
private val min = 0
private val max = 100
var randomNumber = 0
我正在开发应用程序,在这个应用程序中,我首先必须启动流程,然后更新值,因此如何访问其他自定义方法o workmanager谢谢。
class SmsWorkManager(val context : Context, workerParameters:WorkerParameters) : CoroutineWorker(context ,workerParameters) {
override suspend fun doWork(): Result {
println("do some
我的应用程序在Redmi手机中没有收到推送通知,而应用程序在后台,或者它被滑动杀死了。 所以我试着用WorkManager唤醒手机,它可以在很多手机上工作,除了Redmi和其他中国定制的只读存储器手机。 这是我的Worker类的代码 public class OpenTalkWorkManager extends Worker {
@NonNull
@Override
public Result doWork() {
Log.i("wake_up", "Waking up now: " + System.currentTimeMillis());
我想继续执行一个方法,即使应用程序不在前台。为此,我使用了WorkManager。但问题是最小时间延迟是15分钟,我们不能减少这个值。下面是代码。 final PeriodicWorkRequest periodicWorkRequest
= new PeriodicWorkRequest.Builder(MyWorker.class, 10, TimeUnit.SECONDS)
.build();
WorkManager.getInstance().enqueue(periodicWorkRequest);
public class
我试图安排3天后通过WorkManager通知,但它没有被触发。我试过以下几种方法。
ArticleNotificationWorker
public class ArticleNotificationWorker extends Worker {
private static final String WORK_RESULT = "work_result";
Context mContext;
public static final String FROM_ARTICLE_NOTIFICATIONS = "ArticleNotificatio