2010-06-10 36 views
25

Tôi đã phát triển một ứng dụng Android. Bây giờ tôi muốn thực hiện một vài thao tác (ví dụ: - Đặt lại cài đặt vv ..) tại thời điểm ứng dụng bị gỡ cài đặt khỏi điện thoại.Thực hiện tác vụ gỡ cài đặt trong android

Có thể reigster người nghe hoặc chức năng được gọi vào thời điểm ứng dụng bị xóa không?

+1

Ứng dụng 'NQ Mobile Security' đang gọi Hoạt động khi gỡ cài đặt xem tại http://i.imgur.com/Fos9N.png, http://i.imgur.com/fIZbK.png, http : //i.imgur.com/cG9Hr.png và câu hỏi http://stackoverflow.com/questions/10219328/how-to-show-an-activity-before-my-app-is-uninstalled-android –

+0

đẹp câu hỏi .. –

+0

Kiểm tra câu trả lời của tôi tại địa chỉ: http://stackoverflow.com/questions/5132472/can-code-be-called-when-my-android-application-is-uninstalled/28209337#28209337 điều này sẽ giúp bạn –

Trả lời

16

Android đáng buồn tại thời điểm này không cung cấp cho bạn khả năng thực hiện mã tại thời điểm ứng dụng của bạn được gỡ cài đặt.

Tất cả các cài đặt được đặt qua SharedPreferences sẽ bị xóa cùng với mọi thứ trong thư mục Bộ nhớ dữ liệu ứng dụng.

Điều duy nhất sẽ tồn tại là dữ liệu được ghi vào thẻ SD và mọi thay đổi đối với cài đặt điện thoại được thực hiện. Tôi không biết điều gì sẽ xảy ra với dữ liệu được đồng bộ hóa với các liên hệ thông qua ứng dụng của bạn.

+7

Tôi không nghĩ rằng nó buồn. Trong thực tế, tôi phấn khởi, bởi vì nó giúp ngăn chặn hoạt động giống như phần mềm gián điệp trên điện thoại của tôi. –

+4

Nhưng nó cũng ngăn cản tôi làm sạch những thứ nhất định như dữ liệu tôi đã tải xuống SD-Card để ngăn không cho bộ nhớ điện thoại đầy. Không, tôi điền đầy đủ SD-Card. Có lẽ điều này sẽ nhận được tốt hơn với các ứng dụng để sd trong froyo nhưng đối với các thiết bị dưới 2,2 tôi muốn được rằng lịch sự trên một gỡ bỏ cài đặt. – Janusz

+7

@Janusz: Hãy xem 'getExternalStorageDirectory() 'trên lớp' android.os.Environment'. Tài liệu trực tuyến nói rằng đã có từ API cấp 1, nhưng tôi không nhớ nó. Bất kể, đó là nghĩa vụ phải cung cấp cho bạn một thư mục ứng dụng cụ thể trên thẻ SD sẽ được làm sạch khi ứng dụng được gỡ cài đặt. – CommonsWare

6

Bạn không thể kiểm soát khi ứng dụng của bạn được gỡ cài đặt - xin lỗi!

+1

cảm ơn, tôi đặt người nhận cho android.intent.action.PACKAG E_REMOVED và nó được gọi khi bất kỳ ứng dụng gỡ cài đặt ngay bây giờ làm thế nào tôi có thể nhận được tên gói đã bị xóa trên máy thu này – dhaiwat

+0

Nếu không thể thì Firebase Analytics tự động cung cấp các sự kiện app_remove như thế nào? –

+2

@OfekRon: Vui lòng không đăng các nhận xét trùng lặp về nhiều câu trả lời. Tôi không sử dụng Firebase và tôi không biết "sự kiện app_remove" là gì. Tuy nhiên, * các ứng dụng khác * trên thiết bị có thể phát hiện ra rằng ứng dụng của bạn đã được gỡ cài đặt. Vì vậy, tôi sẽ cho rằng ứng dụng Play Services Framework, Cửa hàng Play hoặc một số mã độc quyền khác của Google là một trong số đó phát hiện việc gỡ cài đặt và chuyển tiếp thông tin đó đến các máy chủ của Google. – CommonsWare

-3

Khi người dùng gỡ bỏ cài đặt ứng dụng android trong di động của mình nhận PACKAGE_REMOVED sẽ gọi. Bạn có thể lấy mục đích sử dụng tên gói ứng dụng đã gỡ cài đặt, getDataString()

if (intent.getAction(). equals ("android.intent.action.PACKAGE_REMOVED")) { 
      String packageName = intent.getDataString(); 
      System.out.println ("uninstall:" + packageName + "package name of the program"); 
} 

Xem ví dụ đầy đủ trong liên kết này. http://foryouneed.blogspot.in/2014/08/android-listener-application-to-install.html

+2

Ứng dụng đang được gỡ cài đặt sẽ không nhận được Mục đích này, từ tài liệu: "Gói đang được cài đặt không nhận được mục đích này". http://developer.android.com/reference/android/content/Intent.html#ACTION_PACKAGE_REMOVED – Anastasia

Các vấn đề liên quan