2013-07-25 31 views
8

Tôi có một Dịch vụ trong đó có 4 biến int tĩnh toàn cầu và tôi có bộ thu BOOT COMPLETE và sự kiện Cuộc gọi. những gì tôi đang cố gắng thực hiện là lưu 4 biến này bất cứ khi nào người nhận cuộc gọi thực hiện và truy xuất chúng khi bộ thu BOOT được thực thi (tất nhiên khi tôi khởi động lại điện thoại của mình) nhưng cả hai đều không hoạt động .. một điều khác là khi thiết bị khởi động lại ?? mã được đưa ra dưới đâyTùy chọn chia sẻ trên Android không hoạt động

SharedPreferences saved_values = this.getSharedPreferences(
       "com.example.app", Context.MODE_PRIVATE); 
    saved_values.edit().putInt("call", MyService.callcount); 
    saved_values.edit().putInt("callend",MyService.callendcount); 
    saved_values.edit().putInt("network",MyService.network_count); 
    saved_values.edit().putInt("ringing",MyService.ringingcount); 
    saved_values.edit().commit(); 

và để lấy

 SharedPreferences saved_values = this.getSharedPreferences(
        "com.example.app", Context.MODE_PRIVATE); 
      MyService.callcount = saved_values.getInt("call", -10); 
      MyService.ringingcount=saved_values.getInt("ringing", -10); 
      MyService. network_count=saved_values.getInt("network", -10); 
      MyService.  callendcount=saved_values.getInt("callend", -10); 
+0

bạn có thể vui lòng tải lên các quy tắc ứng BroadCastRecevier? – Vigbyor

+0

thực sự tôi đang bắt đầu một dịch vụ ý định mới trong nhận và trong đó tôi đang làm điều này. trong hàm Onhandleintent(). – Ateeq

Trả lời

17

tôi đã sử dụng này và nó làm việc cho tôi.

Đối với tiết kiệm

SharedPreferences saved_values = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
SharedPreferences.Editor editor=saved_values.edit(); 
    editor.putInt("count",count); 
      editor.putInt("foo",foo); 
    editor.commit(); 

và để lấy

 SharedPreferences saved_values = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

     count = saved_values.getInt("count", -1); 
+3

Cảm ơn bạn đã đăng bài này. Chia sẻ thẳngTùy chọn không hoạt động theo quy định. – SQLiteNoob

11

Vấn đề là mỗi lần bạn gọi chỉnh sửa() một đối tượng biên tập mới là created.You nên giữ thể hiện của một đối tượng Editor và thực hiện tất cả các hoạt động trên đó.

Sử dụng sau

 SharedPreferences saved_values = this.getSharedPreferences(
       "com.example.app", Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor=saved_values.edit(); 
     editor.putInt("call", MyService.callcount); 
     editor.putInt("callend", MyService.callendcount); 
     editor.putInt("network", MyService.network_count); 
     editor.putInt("ringing", MyService.ringingcount); 
     editor.commit(); 
+2

vấn đề không hoạt động tương tự – Ateeq

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