我正在尝试在一个活动中保存未接来电的数量,并在另一个活动中读取它们。 第一项活动:
public class CallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
TelephonyManager.EXTRA_STATE_IDLE)
|| intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
TelephonyManager.EXTRA_STATE_OFFHOOK)) {
// get the phone number
String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
// This code will execute when the call is disconnected
Toast.makeText(context, "missed call number " + incomingNumber, Toast.LENGTH_SHORT).show();
SharedPreferences s = context.getSharedPreferences("s" ,Context.MODE_PRIVATE);
SharedPreferences.Editor e = s.edit();
int count= s.getInt("counter" , 1);
e.putInt("counter",count++);
e.commit();
}
}
工作中的祝酒词,我知道来电者的号码,但我无法保存计数并在第二项活动中阅读:
SharedPreferences s = getSharedPreferences("s" ,Context.MODE_PRIVATE);
int calls = s.getInt("counter" , 0 );
答案 0 :(得分:1)
在下面一行,
e.putInt("counter", count++); // post increment is error-prone.
可以更改为
e.putInt("counter", ++count);
或者,只需添加1即可。
e.putInt("counter", count + 1);
答案 1 :(得分:0)
在保存和检索值时使用相同的上下文。使用getApplicationContext()。