在Android活动之间传递Location对象

时间:2018-06-11 12:52:21

标签: android location

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

2 个答案:

答案 0 :(得分:0)

您可以转换为json字符串,然后将其发布到其他活动

使用此库 gson

和此转换代码

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

答案 1 :(得分:0)

就像@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);