我有一个启动服务的活动。我希望服务能够访问Activity的成员变量(一个布尔值)。我在Activity中实现了一个getBoolean()方法,但是如何在服务中实例化Activity来访问它?访问共享数据的服务和活动
0
A
回答
0
使用SharedPreferences保存在活动数据和当启动一个服务
SharedPreferences sharedPref = getSharedPreferences(“MYPREF宇可以访问它在服务 在OnStartCommand方法“,Context.MODE_PRIVATE); sharedPref.getBoolean(“flag”,false);
0
你不知道。相反,请使用广播接收器或共享偏好设置。
实施例使用广播接收器 -
public class MyService extends Service {
boolean mActivityBoolean;
BooleanReceiver mReceiver;
@Override
public void onCreate() {
super.onCreate();
mReceiver = new BooleanReceiver();
LocalBroadcastManager.getInstance(this).registerReceiver(
mReceiver, new IntentFilter("activityBooleanIntent")
);
}
@Override
public void onDestroy() {
LocalBroadcastManager.getInstance(this).unregisterReceiver(mReceiver);
super.onDestroy();
}
public class BooleanReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
mActivityBoolean = intent.getBooleanExtra("activityBoolean", false);
}
}
}
public class MyActivity extends Activity {
void someMethodThatSendsABooloean(boolean trueOrFalse) {
.....
Intent intent = new Intent();
intent.setAction("activityBooleanIntent");
intent.putExtra("activityBoolean", trueOrFalse);
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}
}
相关问题
- 1. 在活动和服务之间共享数据库
- 2. 在活动和服务之间共享数据android
- 3. 在本地服务和托管活动之间共享数据
- 4. 在服务和活动之间共享数据
- 5. 启动Android服务和访问活动中的数据
- 6. 访问远程共享点服务器
- 7. 从服务访问网络共享
- 8. SQl服务器2012 LocalDb共享访问
- 9. .bat%server%wildcard访问服务器共享
- 10. 在数据访问层中共享连接和事务
- 11. 共享活动
- 12. 在活动和服务之间共享偏好
- 13. 访问和添加共享联系人Sharepoint服务器
- 14. 服务共享
- 15. 在Angular2中跨服务共享数据
- 16. 使用AngularJS服务共享数据
- 17. 从共享服务获取数据angular2
- 18. 在AngularJS服务之间共享数据
- 19. 共享合同WCF数据服务
- 20. 在服务间共享数据
- 21. 在Web服务之间共享数据
- 22. 如何同步任务间共享数据的访问?
- 23. Android的学生共享活动问题
- 24. ActivityStream.ms /活动流和“共享”动词
- 25. 问题上的共享服务器
- 26. 如何在活动和小部件之间共享数据?
- 27. 在活动和类别之间共享数据
- 28. 活动和片段之间共享数据
- 29. 如何在活动和ContentProvider之间共享数据库?
- 30. 无法访问服务中的共享首选项 - Android
是的,我最终使用了SharedPreferences。只是认为直接访问会更快。 – user1118764