gpt4 book ai didi

android - 如何使用 StrictMode.noteSlowCall?

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:02 26 4
gpt4 key购买 nike

我只想使用 StrictMode.noteSlowCall 。我不知道该怎么办。开发者网站/androidxref 没有足够的解释。

下面是我的代码。

@Override
public void onCreate() {

StrictMode.ThreadPolicy.Builder builder = new StrictMode.ThreadPolicy.Builder();
builder.detectCustomSlowCalls();
builder.penaltyLog();
builder.penaltyDropBox();
builder.penaltyDialog();
builder.penaltyFlashScreen();

StrictMode.setThreadPolicy(builder.build());

下面是其他文件...

public static BigInteger computeRecursivelyWithCache(int n)

{

StrictMode.noteSlowCall("jheeTest CustomSlowCall");
SparseArray<BigInteger> cache = new SparseArray<BigInteger>();
return computeRecursivelyWithCache(n);
}

OnClickListener mAboutKeyboardImageOnClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
computeRecursivelyWithCache(5);

我试过这些代码。但它根本不起作用。即使我按下按钮,它也不会出现在日志文件或保管箱中。你能告诉我问题是什么吗?

最佳答案

来自文档,

StrictMode is a developer tool which detects things you might be doing by accident and brings them to your attention so you can fix them.

使用这种 StrictMode,您还可以检测慢速方法调用。

StrictMode.noteSlowCall("jheeTest CustomSlowCall");

当你说“StrictMode.noteSlowCall”时,你正在设置一个策略,告诉系统在方法执行缓慢时通知你。如何通知取决于你设置的“惩罚”。

这里,“jheeTest CustomSlowCall”是一个标签/消息,供您识别违规发生的位置。

当您运行您的应用程序并发生违反政策时(在此特定政策中,StrictMode 检测到您的其中一个方法执行缓慢),如果您已给出 penaltyLog(),您将在 logcat 中看到一个日志

我在我的一个应用程序中模拟了一个缓慢的方法调用并使用了标签“Slow_Call_Method_1”

11-30 15:11:38.574 16892-16892/com.PackageName D/StrictMode: StrictMode policy violation; ~duration=251 ms: android.os.StrictMode$StrictModeCustomViolation: policy=65551 violation=8 msg=Slow_Call_Method_1
at android.os.StrictMode$AndroidBlockGuardPolicy.onCustomSlowCall(StrictMode.java:1397)
at android.os.StrictMode.noteSlowCall(StrictMode.java:2340)
at com.PackageName.TinyDBHelper.init(TinyDBHelper.java:41)
at com.PackageName.MyApplication.onCreate(MyApplication.java:77)

查看消息。

违反严格模式政策; ~duration=251 毫秒:android.os.StrictMode$StrictModeCustomViolation:policy=65551 violation=8 msg=Slow_Call_Method_1

如果添加了很多要跟踪的方法,该消息可帮助您确定是哪个方法导致了策略违规。就我而言,我将 TAG 设置为“Slow_Call_Method_1”的方法违反了政策

回答你的问题,

Even I pressed the button, it doesn't appear on log file or dropbox.

它出现在日志文件中是因为系统检测到它是一个缓慢的调用——这意味着方法运​​行速度足够慢以至于违规失败

关于android - 如何使用 StrictMode.noteSlowCall?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39589318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com