我正在使用Facebook App Events跟踪Android,但我不知道如何在用户想要退出时禁用跟踪!有谁知道这是怎么做到的吗?
文件说:
我们建议您使用我们的SDK工具提供退出选项.
但他们实际上并没有在任何地方描述它.经典Facebook移动.
编辑:现在GDPR生效了很长时间,他们仍然没有办法禁用所有跟踪,直到用户同意,是吗?
对于那些在大多数情况下加剧Lint"使用左/右而不是开始/结束属性"警告的人来说,Android Studio应该是众所周知的.我正在使用Android Studio 0.8.9,但早期版本中也存在以下问题:如果您在代码中的任何位置添加此超小代码段
public enum BiteMeLint {
LEFT
}
Run Code Online (Sandbox Code Playgroud)
Android Studio会显示警告
使用"Gravity.START"而不是"Gravity.LEFT"来确保从右到左的语言环境中的正确行为.
对于常数RIGHT也会发生这种情况,尽管它建议在这种情况下使用Gravity.END.现在,我是一名开发人员,他喜欢通过遵守或者,如果不可能,通过在必要时抑制并添加"todo"或"fixme"来保持他的代码完全清除任何警告.在这里,因为我使用"LEFT"和"RIGHT"作为实际方向的常量,所以警告显然是一个错误.可悲的是,补充道
@SuppressLint("RtlHardcoded")
Run Code Online (Sandbox Code Playgroud)
不会删除警告.那么如何删除这个警告的笑话呢?现在,我问,我能不能完全禁用项目的RTL警告,我肯定永远不会从右到左的语言环境启动?
所以我有这个简单的主要布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include layout="@layout/top_bar" />
<android.support.v4.view.ViewPager
android:id="@+id/VpPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
然后我使用FragmentPagerAdapter用不同的片段填充ViewPager,除了一件事以外,它按预期工作.
假设其中一个片段具有此布局,其中window是一个包含带圆角的简单形状的XML文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
android:orientation="vertical"
android:background="@drawable/window">
...
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
然后,由于某种原因,16dp的余量被完全忽略.但是,如果我将布局设置为:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
android:orientation="vertical"
android:background="@drawable/window">
...
</LinearLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
然后它工作.我真的不想将整个布局嵌套在另一个布局中,只是为了使边距有效.另外,由于背景原因,我不能使用填充.知道第一个版本的问题是什么吗?任何替代方案,我不必将布局放在另一个?
我有一个图书馆项目和一个应用项目.除了其他东西,libary项目包含一些png和一些矢量drawables.现在,我可以通过给它相同的名称轻松覆盖应用程序项目中的png drawable,它将正确显示.但这不适用于矢量drawables:应用程序总是显示在Android 4和5上的库中定义的矢量drawables.应用程序永远不会显示应用程序项目的矢量drawables.
由于工具将库模块的资源与依赖应用程序模块的资源合并,因此可以在两个模块中定义给定的资源ID.在这种情况下,工具从应用程序或具有最高优先级的库中选择资源,并丢弃其他资源.在开发应用程序时,请注意,可能会在多个项目中定义公共资源ID并将其合并,应用程序或最高优先级库中的资源优先.
但正如我所说,在矢量绘图的情况下,由于某种原因,它是相反的.知道我能做些什么来确保矢量drawables被覆盖就像普通的drawables和其他资源一样?
更新:已解决支持库v23.2!现在没什么可做的:)
在 Android 9 上测试前台通知时,我注意到一些非常奇怪的行为。
情况:我有一些前台服务,我不知道它们需要运行多长时间,无论是 1 秒还是一整分钟。最后,当服务完成时,它会调用stopForeground(true). 这曾经在所有 Android 8、9 和 10 设备上都可以正常工作stopForeground(true),即使立即调用,也始终可靠地删除通知。
问题:在Fairphone 3上进行测试(我希望其他人在其他一些设备上遇到过这种情况,因为对我来说这不会在任何模拟器或其他设备上发生),stopForeground没有按预期工作。即使我立即致电,通知也不会立即删除通知,而是始终显示至少 5 秒stopForeground。这 5 秒恰好是可怕错误Context.startForegroundService() 没有调用 Service.startForeground()的确切 5 秒限制- 仍然是一个问题。很奇特!使用下面的代码可以很容易地重现这一点并检查您的设备是否受到影响。
内部AndroidManifest.xml:
<service
android:name="<your package name>.TestService"
android:exported="false" />
Run Code Online (Sandbox Code Playgroud)
班级TestService.java:
package <your package name>;
import android.annotation.TargetApi;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.IBinder;
import androidx.annotation.Nullable;
import androidx.core.app.NotificationCompat;
@TargetApi(Build.VERSION_CODES.O) …Run Code Online (Sandbox Code Playgroud)