您好我开发了一个包含列表的应用程序,每行包含一个切换按钮文本和一个图像切换按钮状态1 0 0存储在isChk整数列表中大小=联系人数量...每当联系人调用调用侦听器检查是否从列表中按下此联系人按钮并执行操作
每当我关闭应用程序时,一切都运行得很好,calllistener仍然接听电话但不按照设置按钮动作它被重置并执行默认操作而不是所需的操作
如何保持我的应用程序数组可用,这样当应用程序关闭并且calllistener函数接收到它相应的动作时,它会起作用?
这是按钮数组初始化代码
public void onClick(View v) {
if(tb.isChecked()){
isChk.set(position,1);
isChkb.set(position,true);
iv.setImageResource(R.drawable.ring);
}else{
isChk.set(position,0);
isChkb.set(position,false);
iv.setImageResource(R.drawable.silentr);
}
这是调用函数
PhoneStateListener callStateListener = new PhoneStateListener() {
public void onCallStateChanged(int state, String incomingNumber)
{
// React to incoming call.
number=incomingNumber;
// If phone ringing
if(state==TelephonyManager.CALL_STATE_RINGING)
{
String CallerName = getContactDisplayNameByNumber(number);
for (String Curval : myArr){
if (Curval.contains(CallerName)){
found = true;
CallerIndex = (Integer) myArr.indexOf(Curval);
}
}
if (found){
if(isChk.get(CallerIndex)==1){
mAudioManager.setRingerMode(ringerMode1);
}
else{
mAudioManager.setRingerMode(ringerMode2);
}
}
}
if(state==TelephonyManager.CALL_STATE_IDLE)
{mAudioManager.setRingerMode(ringerMode);
}
found = false;
}
};
答案 0 :(得分:0)
这是因为您的设置不会持续存在,并且会在关闭应用时丢失。
由于联系人列表可能有所不同,请使用database
存储更改。在呼叫响铃时检入数据库而不是列表。
答案 1 :(得分:0)
在您的应用之外存储内容可能就是您需要的。看看这个 http://developer.android.com/guide/topics/data/data-storage.html#pref
可能有用。