Thêm một Receiver để dự án của bạn và bạn sẽ nhận được sự kiện này mà không cần khởi động ứng dụng của bạn.
public class TestReciver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("TestReciver",intent.getAction()+"\n"
+intent.getDataString()+"\n"
+"UID: "+intent.getIntExtra(Intent.EXTRA_UID,0)+"\n"
+"DATA_REMOVED: "+intent.getBooleanExtra(Intent.EXTRA_DATA_REMOVED, false)+"\n"
+"REPLACING: "+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)
);
}
}
và biểu hiện của bạn thêm nó như thế này (Bên trong ứng dụng của bạn < > tag):
<receiver android:name="TestReciver" >
<intent-filter >
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
Khi bạn sử dụng một máy thu như thế này bạn không gọi cho bất kỳ đăng ký hoặc unregister nên nó sẽ luôn luôn sẵn sàng nhận dữ liệu.
Lưu ý rằng thao tác này sẽ không hoạt động nếu bạn cho phép người dùng chuyển ứng dụng của bạn sang thẻ SD. Nếu một sự kiện được gửi khi thẻ SD chưa được gắn, người nhận sẽ không thể truy cập được và bạn sẽ bỏ lỡ sự kiện này.
Người nhận đăng ký này có được đăng ký trong tệp kê khai nằm trong hoạt động hiện bị tạm dừng không, có thể truy cập biến riêng tư của hoạt động kèm theo của nó không? – Peterdk
Đừng bận tâm, bây giờ tôi thấy rằng một lớp người nhận không phải là một giao diện, mà là một lớp bạn cần kế thừa. – Peterdk
@chris, tôi không thấy tài liệu này trong tài liệu android. –