Android Studio:
อย่าวางคลาสบริบทของ Android ในช่องคงที่ นี่คือการรั่วไหลของหน่วยความจำ (และหยุดการรันทันทีด้วย)
ดังนั้น 2 คำถาม:
# 1 คุณจะเรียก a startServiceจากวิธีการคงที่โดยไม่มีตัวแปรคงที่สำหรับบริบทได้อย่างไร?
# 2 คุณส่ง localBroadcast จากวิธีการคงที่ (เหมือนกัน) ได้อย่างไร?
ตัวอย่าง:
public static void log(int iLogLevel, String sRequest, String sData) {
if(iLogLevel > 0) {
Intent intent = new Intent(mContext, LogService.class);
intent.putExtra("UPDATE_MAIN_ACTIVITY_VIEW", "UPDATE_MAIN_ACTIVITY_VIEW");
mContext.startService(intent);
}
}
หรือ
Intent intent = new Intent(MAIN_ACTIVITY_RECEIVER_INTENT);
intent.putExtra(MAIN_ACTIVITY_REQUEST_FOR_UPDATE, sRequest));
intent.putExtra(MAIN_ACTIVITY_DATA_FOR_VIEW, sData);
intent.putExtra(MAIN_ACTIVITY_LOG_LEVEL, iLogLevel);
LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent);
อะไรคือวิธีที่ถูกต้องในการทำเช่นนี้โดยไม่ใช้mContext?
หมายเหตุ: ฉันคิดว่าคำถามหลักของฉันอาจเป็นวิธีส่งบริบทไปยังคลาสที่เมธอดการเรียกใช้อยู่