MyWorker.class:
public class MyWorker extends Worker {
public MyWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
super(context, workerParams);
}
@NonNull
@Override
public Result doWork() {
Log.d("TAG","WORK: ");
//my actual work....
Intent intent = new Intent(getApplicationContext(), NewScreen.class);
getApplicationContext().startActivity(intent);
return Result.success(); //true - success / false - failure
}
}
MainActivity:
public class MainActivity extends AppCompatActivity {
OneTimeWorkRequest oneTimeWorkRequest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// TextView textView = findViewById(R.id.text);
oneTimeWorkRequest = new OneTimeWorkRequest.Builder(MyWorker.class)
.setConstraints(new Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build())
.build();
WorkManager.getInstance().enqueue(oneTimeWorkRequest);
}
}
我正在尝试使用WorkManager从MainActivity打开一个新的活动(屏幕)。尝试学习和尝试使用WorkManager。如果我输入运行日志,即执行doWork()。另外,我在意图上添加了断点,它可以正常工作,但UI不会受到影响。
FYI-我是新来的,正在学习WorkManager和后台过程。
[MyWorker.class:公共类MyWorker扩展了Worker {public MyWorker(@NonNull Context context,@NonNull WorkerParameters workerParams){super(context,workerParams); } @ ...
最后为我的问题找到了解决方案: