在 Android 个活动之间传递 Location 对象

Passing Location object between Android activities

我有一个 Location 对象,我想将其传递给另一个 activity。 我阅读了如何使用序列化传递自定义对象以及如何传递预定义对象。 一种解决方案是创建一个仅包含 Location 变量的自定义 class。还有其他方法吗?

您可以转换为 json 字符串,然后 post 将其转换为其他 activity

使用这个库 gson

和转换代码

String pLocation = new Gson().toJson(mLocation);

就像 @nongthonbam-tonthoi 提供的一样: 位置由 3 个值定义:纬度、经度和精度(本质上是一个点 + 半径)。

Location loc = getLocationFromSomewhere();
Data myData = new Data.Builder()
    .putDouble(KEY_LOC_LAT, loc.getLatitude())
    .putDouble(KEY_LOC_LON, loc.getLongitude())
    .putDouble(KEY_LOC_ACCURACY, loc.getAccuracy())
    .build();

OneTimeWorkRequest myWork = new OneTimeWorkRequest.Builder(MyWorker.class)
        .setInputData(myData)
        .build();
WorkManager.getInstance().enqueue(myWork);