我有一個啓動服務的活動。我希望服務能夠訪問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