Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách lấy Stack Traces của tất cả thread trong Android

Giới thiệu

Phương thức Thread.getAllStackTraces() trả về map chứa stack trace của mọi thread đang sống. Ví dụ này in ra thông tin đó.

Bước 1: Tạo project mới

Android Studio → File → New Project.

Bước 2: Giao diện (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:layout_marginTop="100dp"
    tools:context=".MainActivity">

    <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>

Bước 3: MainActivity.java

package com.example.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.text);
        Map allStacks = Thread.getAllStackTraces();
        StringBuilder sb = new StringBuilder("Tất cả stack traces:\n");
        for (Map.Entry entry : allStacks.entrySet()) {
            sb.append(entry.getKey().getName()).append("\n");
        }
        textView.setText(sb.toString());
    }
}

Chạy ứng dụng

Hiển thị danh sách tên các thread và stack trace của chúng.

Cách lấy Stack Traces của tất cả thread trong Android