我有一個啓動服務的活動。我希望服務能夠訪問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. 共享訪問簽名和WCF服務
- 2. 在本地服務和託管活動之間共享數據
- 3. 在服務和活動之間共享數據
- 4. 在服務和活動之間共享數據
- 5. 在活動和服務之間共享數據android
- 6. 在活動和服務之間共享數據庫
- 7. 啓動Android服務和訪問活動中的數據
- 8. ListView和活動共享數據
- 9. 訪問Pthreads共享數據
- 10. 從服務訪問共享首選項
- 11. .bat%server%wildcard訪問服務器共享
- 12. SQl服務器2012 LocalDb共享訪問
- 13. 訪問遠程共享點服務器
- 14. 從Windows服務訪問NFS共享
- 15. 訪問服務器端共享變量
- 16. 從服務訪問網絡共享
- 17. 服務可以共享數據訪問對象(DAO)
- 18. Angularjs - 從ng-repeated指令訪問共享服務數據
- 19. 共享業務和數據訪問實體的策略
- 20. 活動和後臺服務訪問SQLite數據庫
- 21. 在數據訪問層中共享連接和事務
- 22. Android:如何訪問/與另一個片段共享活動綁定服務?
- 23. 共享活動
- 24. 在活動和服務之間共享偏好
- 25. 按服務和活動共享單例Java類
- 26. 正確的方式從活動和已啓動的服務訪問數據庫?
- 27. Powershell:從遠程服務器訪問共享驅動器
- 28. 共享數據從/到活動
- 29. 訪問和添加共享聯繫人Sharepoint服務器
- 30. 在活動和服務之間分享大量數據
是的,我最終使用了SharedPreferences。只是認爲直接訪問會更快。 – user1118764