Tôi đã xem bài đăng trên blog của bạn. Vì bạn chỉ muốn thiết lập StrictMode nhiều nhất một lần cho mỗi tệp Java, liệu nó có tạo ra bất kỳ ý nghĩa nào để đơn giản hóa mã để gọi cho thiết lập như sau không?
Dưới đây là một StrictModeWrapper thay thế:
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.os.StrictMode;
public class StrictModeWrapper {
public static void init(Context context) {
// check if android:debuggable is set to true
int applicationFlags = context.getApplicationInfo().flags;
if ((applicationFlags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork()
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.penaltyLog()
.penaltyDeath()
.build());
}
}
}
Từ mã của bạn, bạn chỉ cần làm như sau:
try {
StrictModeWrapper.init(this);
}
catch(Throwable throwable) {
Log.v("StrictMode", "... is not available. Punting...");
}
nơi đây là bối cảnh địa phương, chẳng hạn như Hoạt động hoặc ứng dụng của bạn hay bất cứ cái gì. Điều này dường như làm việc cho Android trước 2.3, và cũng cung cấp cho bạn sức mạnh của việc sử dụng các phương thức khác của các lớp Builder để cấu hình chính xác StrictMode như bạn muốn.
Nguồn
2011-01-18 03:45:15
nếu tôi không nhận được câu trả lời ở đây tôi sẽ tự mình tìm ra khi tôi có một chút thời gian để làm điều đó .. cần phải chuẩn bị cho andevcon tại thời điểm này .. –