小编Ale*_*494的帖子

Android 内存泄漏与 Glide

我有一个活动,它通过滑行在 ImageViews 中加载图片。这是我的滑行代码示例:

    Glide.with(ImageVOne.getContext())
            .load(geoInfo.getPhotoUrl1())
            .skipMemoryCache(true)
            .priority(Priority.NORMAL)
            .into(ImageVOne);
Run Code Online (Sandbox Code Playgroud)

我加载了 1 到 35 张图片,每张图片应该在 150ko 和 250ko 之间。我不能减少那个。

这个活动可以在一个会话中从主活动访问多次,每次加载不同的图片。例如,第一次是华盛顿的照片,然后是伦敦的照片等等。

我的问题是每次启动加载图片的活动时,内存的使用都会增加很多: 在此处输入图片说明

我可以启动 3 到 5 次活动,然后应用程序崩溃。错误信息是

java.lang.OutOfMemoryError: Failed to allocate a 1411340 byte allocation with 1126320 free bytes and 1099KB until OOM
Run Code Online (Sandbox Code Playgroud)

我读过关于内存泄漏的帖子,但我认为 Glide 会避免这个问题。我的图片活动在另一个活动开始之前完成,但分配给我的应用程序的内存似乎没有下降。我还在android:noHistory="true"清单中添加了我的图片活动,但它没有改变任何东西。

android:largeHeap="true"在我的清单中添加了但它只是推迟了我的问题(我可以启动图片活动大约 10 到 15 次)并且在应用程序崩溃之前我的图像视图中没有加载很多图片,所以这对我来说不是一个好的解决方案。

我还尝试在使用 glide 时添加 .skipMemoryCache (true) 但我没有注意到任何变化。

我想每次从图片活动转到主要活动时,我的“内存使用”应该会减少,然后当我用新图片再次开始我的图片活动时会增加。但从我在蓝色图表上看到的情况来看,它几乎只会增加。你明白我应该怎么做吗?

android memory-leaks android-glide

9
推荐指数
2
解决办法
1万
查看次数

Firebase云功能"您的客户端无权从此服务器获取URL/200"

我刚刚制作了一个firebase云功能:

exports.deleteAfterSevenDays = functions.https.onRequest((req, res) => {...
Run Code Online (Sandbox Code Playgroud)

我部署了该函数并获得了一个函数URL.当我从浏览器请求此URL时,我收到以下消息:

"错误:禁止您的客户端无权从此服务器获取URL/200."

我刚刚更新到firebase Blaze计划,因为我认为Spark计划有局限性,但它仍然无效.

在我的firebase云功能日志中写着"函数执行花了572毫秒,完成状态代码:302".

我的cron作业"由于执行失败太多而自动被禁用".

你看到了什么问题吗?

谢谢,

亚历克斯

firebase google-cloud-functions

9
推荐指数
9
解决办法
4621
查看次数

FirebaseAuth android获取Facebook好友列表

我在我的应用程序中使用facebook登录.一旦用户登录,我就可以获得他们的基本Facebook信息,例如显示名称,电子邮件和照片网址.我想得到他们的facebook好友列表.我想我可以"直接"使用firebase,但我不记得我怎么也找不到任何关于它的信息.我想当人们使用facebook登录时,我首先要告诉Firebase获取好友列表,然后我可以使用firebaseAuth.getCurrentUser().getFriendList()这样的方法来获取它.

你知道怎么用firebaseAuth获取facebook好友列表吗?

谢谢,

亚历克斯

android facebook-graph-api firebase facebook-friends firebase-authentication

7
推荐指数
2
解决办法
3130
查看次数

Xcode 8如何添加语言?

我想用德语和日语翻译我的应用程序.我已经阅读了教程,但是我找不到我应该在我的应用程序的信息选项卡中查看的Base Internationalization框.我的信息选项卡中的主要部分是"自定义IOS目标属性","文档类型","导出的UTI"......没有任何关于本地化的信息.

我想我必须在"自定义IOS目标属性"中管理它,但我不知道如何.在那里,我添加了"Localizations"键和"English","German"和"Japanese"值,我还有一个关键的"Localization native development region",其值为"en".

然后我在Base.lproj中添加了我的Localizable.strings文件,但是在File Inspector中我只能看到"Base"和"English"作为Localization,没有关于德语和日语的内容.

我还注意到,当我进入编辑器>添加本地化时,我无法选择任何语言.

你看到了什么问题吗?

谢谢,

亚历克斯

xcode localization localizable.strings ios xcode8

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

如何在同一个活动中获得两个 MapFragment - Google Map Api

我需要在活动中显示两个具有两个不同位置的 MapFragment。在我的 XML 文件中,我有两个名为“map”和“map_two”的 MapFragment,在 Java 中,我在 onCreate 中的代码是:

com.google.android.gms.maps.MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(map);
        mapCount = 1;
        mapFragment.getMapAsync(this);
        com.google.android.gms.maps.MapFragment mapFragmentTwo = (MapFragment) getFragmentManager().findFragmentById(map_two);
        mapCount = 2;
        mapFragmentTwo.getMapAsync(this);
Run Code Online (Sandbox Code Playgroud)

然后我覆盖 onMapReady :

@Override
public void onMapReady(GoogleMap googleMap) {
    if (mapCount == 1){
    mMap = googleMap;
    LatLng vannes = new LatLng(47.66, -2.75);
    mMap.addMarker(new MarkerOptions().position(vannes).title("Vannes"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(vannes));

    } else if (mapCount == 2){
        mMap = googleMap;
        LatLng bordeaux = new LatLng(44.833328, -0.56667);
        mMap.addMarker(new MarkerOptions().position(bordeaux).title("Bordeaux"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(bordeaux));

    } 
}
Run Code Online (Sandbox Code Playgroud)

我的问题是两张地图显示相同的位置,而我想显示两个不同的位置。你知道怎么做吗?

谢谢,

亚历克斯

android google-maps mapfragment

2
推荐指数
1
解决办法
1588
查看次数