Bạn sẽ cần phải vượt qua một bối cảnh, ngay cả lớp ContentResolver
cần ngữ cảnh hợp lệ để được khởi tạo.
Cách đơn giản nhất là như một cuộc tranh cãi với phương pháp:
public void test(Context context) throws Exception {
Uri uri = SuspiciousActivityTable.CONTENT_URI;
context.getContentResolver().update(uri, values2, where,new String[]{"Null"});
}
Và để gọi: (giả sử rằng lớp có chứa test
là instantiated và tên của hoạt động của bạn là MyActivity
< - Thay thế bằng tên Activity
bạn đang gọi điện thoại test()
từ)
try{
sendInformationInstanceVariable.test (MyActivity.this);
}
catch (Exception e)
{
e.printStackTrace();
}
MyActivity.this
có thể được rút ngắn thành chỉ this
nếu bạn không gọi test()
từ bên trong một lớp bên trong ẩn danh.
Ngoài ra, nếu lớp học của bạn thực sự không có lý do chính đáng để được khởi tạo, hãy xem xét làm test()
một phương pháp static
, như thế này:
public static void test(Context context) throws Exception {
Uri uri = SuspiciousActivityTable.CONTENT_URI;
context.getContentResolver().update(uri, values2, where,new String[]{"Null"});
}
Sau đó từ Activity
của bạn, bạn gọi phương pháp này mà không cần một Ví dụ:
try{
sendInformation.test (MyActivity.this);
}
catch (Exception e)
{
e.printStackTrace();
}
Cuối cùng, ném Exception
là xấu thực hành, làm không làm điều đó mà không cần lý do chính đáng và nếu bạn không có một lý do chính đáng, càng cụ thể càng tốt.
'public void class' Điều đó không thực hiện bất kỳ ý nghĩa. Các lớp không thể có kiểu trả về. –
Ok vì vậy lớp này được gọi từ một lớp khác mở rộng hoạt động vì vậy tôi phải vượt qua bối cảnh đó làm thế nào tôi có thể làm điều đó? – user2033349
xem chỉnh sửa của tôi. Thông thường bạn bỏ qua 'this' để' test() ' –