小编zep*_*hyr的帖子

如何处理android API低于28的缺口(显示切口)?

Android在API 28上增加了缺口支持,但如何在运行API 27的设备上处理它(荣誉10,华为P20等)?

我试图使用,DisplayCutoutCompat但我无法创建它的实例,因为文档没有真正指出如何创建一个.

如何创建构造函数参数值:Rect safeInsets,List<Rect> boundingRects

我也查看了构造函数的源代码,这对我来说有点混乱:

public DisplayCutoutCompat(Rect safeInsets, List<Rect> boundingRects) {
        this(SDK_INT >= 28 ? new DisplayCutout(safeInsets, boundingRects) : null);
    }
Run Code Online (Sandbox Code Playgroud)

这将始终在运行API <28的设备上返回null .先感谢您.

android android-appcompat android-9.0-pie androidx

12
推荐指数
2
解决办法
6445
查看次数

GRPC使用地理编码器失败

我正在使用android studio.

我点击时试图从googlemaps获取位置名称.

我正在使用地理编码器.

每次我点击地图上的某个地方,标记去那里,但我不能得到城市名称,我得到一个grpc失败的错误.

我该怎么办?我用api 23,24,25尝试了这个,没有一个能奏效.

我的onMapClick函数:

 @Override
public void onMapClick(LatLng latLng) {
    mMap.clear();
    mMap.addMarker(new MarkerOptions().position(latLng).title("Konum"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));

    Geocoder geocoder = new Geocoder(MapsActivity.this.getBaseContext(), Locale.getDefault());

    try {
        List<Address> city = geocoder.getFromLocation(latLng.latitude,latLng.longitude,1);
        if (city != null && city.size() > 0){
            Log.i("Info",city.get(0).getLocality());
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

W/System.err:java.io.IOException:grpc失败W/System.err:at com.example.umut.googlemapstest.MapsActivity $ override.onMapClick(MapsActivity.java:127)

这表现了

List<Address> city = geocoder.getFromLocation(latLng.latitude,latLng.longitude,1);
Run Code Online (Sandbox Code Playgroud)

这段代码

java android google-maps

8
推荐指数
1
解决办法
3650
查看次数

为什么行为不同?-android:launchMode =“ singleTask”,android:taskAffinity =“”和Intent.FLAG_ACTIVITY_NEW_TASK

我有四个活动-A,B,C,D

我以-> ABCDB的方式称呼这四个活动。(指定方式)

我有三种情况。

第一:-android:launchMode="singleTask"仅在B活动中定义。我通过Intent上述指定方式调用所有活动。

现在首先呼叫ABCD, BackStack Task 1 : A-B-C-D,

现在,我再次呼叫B,然后 BackStack Task 1 : A-B。这里的C和D活动被销毁。

第二:-我正在定义android:launchMode="singleTask"android:taskAffinity=""在B活动中。我通过Intent上述指定方式调用所有活动。

现在首先呼叫ABCD, BackStack Task 1 : A

                                  Task 2 : B-C-D
Run Code Online (Sandbox Code Playgroud)

现在我再次打电话给B,然后 BackStack Task 1 : A

                                Task 2 : B ,Here C and D Activities are destroyed.
Run Code Online (Sandbox Code Playgroud)

第三:-我正在定义Intent.FLAG_ACTIVITY_NEW_TASKandroid:taskAffinity=""在B活动中。我通过Intent上述指定方式调用所有活动。

现在首先呼叫ABCD, BackStack Task 1 : A

                                  Task 2 : B-C-D
Run Code Online (Sandbox Code Playgroud)

现在我再次打电话给B,然后 BackStack Task …

android launchmode back-stack

5
推荐指数
1
解决办法
352
查看次数