tôi là tạo ra tùy chọn menu mới bên trong mảnh nhưng sau khi đọc http://developer.android.com/resources/articles/avoiding-memory-leaks.html mà nói với nó là tốt hơn để sử dụng bối cảnh ứng dụng hơn bối cảnh hoạt động, tôi sợ để sử dụng getActivity(). GetMenuInflater()tạo menu mớiInflater hoặc getMenuInflater() từ hoạt động?
Vì vậy, , trên thực tế cái nào tốt hơn
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
MenuInflater mInflater = new MenuInflater(getActivity().getApplicationContext());
mInflater.inflate(R.menu.simple_menu, menu);
}
Hoặc hoạt động một cuộc gọi
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
MenuInflater mInflater = getActivity().getMenuInflater();
mInflater.inflate(R.menu.simple_menu, menu);
}
và, những gì là sự khác biệt giữa hai người 'em? hoặc..both chỉ là giống nhau?
Cảm ơn.
yeah, nhưng tạo "mới" menuInflater âm thanh như nó sẽ ăn bộ nhớ nhiều hơn "nhận" menuInflater ... và bạn nói nó sẽ không bị rò rỉ nếu tôi không vượt qua menuInflator đến một lớp khác, tôi gọi nó bên trong lớp fragment không phải là hoạt động mảnh, vì vậy nếu tôi gọi getMenuInflator, nó sẽ không "gọi trình đơnInflator từ một lớp khác" ? –
@ GAO-tsukai Tôi đã bỏ lỡ câu hỏi của bạn về phương pháp này. Tôi đã cập nhật câu trả lời của mình cho phù hợp. – spatulamania
cảm ơn, bây giờ tôi cảm thấy tôi thực sự cần phải nhìn thấy nguồn Android ... –