gpt4 book ai didi

java - 将 Activity 实例传递给 IntentService

转载 作者:行者123 更新时间:2023-12-02 05:47:49 25 4
gpt4 key购买 nike

我正在尝试将我的 Activity 实例传递给 Intent 服务。原因是 Intent 服务会进行大量后台服务器通信,如果出现网络错误或服务器返回错误,我想显示一条弹出消息。

当我创建服务时,我使用这个

    Intent service = new Intent(this, SyncService.class);
Bundle b2 = new Bundle();
b2.putParcelable(StringsConfig.OBJECT_DELIVERABLES, objects);
service.putExtras(b2);
startService(service);

有没有办法将 Activity 的实例传递给它。我在 SyncService 类中也有一个接受 Activity 的方法,但我不知道如何创建同步服务类的实例,通过该方法传递 Activity ,然后启动同步服务。

感谢任何帮助。

最佳答案

将 Activity 实例传递给 Intent Service 并不是一个好主意。如果长时间运行的后台服务需要显示对话框消息,最好将其建模为 Intent。

就这样做:

Intent dialogIntent = new Intent(getApplicationContext(), YourDialogActivity.class);
dialogIntent.putStringExtra(Constants.TITLE, "Your Dialog Title");
dialogIntent.putIntExtra(Constants.MESSAGE, R.string.yourErrorMessageId);
startActivity(dialogIntent);

这样,服务契约(Contract)就干净多了。

关于java - 将 Activity 实例传递给 IntentService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23879298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com