기기 부팅 후 위젯에 데이터를 읽으려고합니다.기기 부팅 후 앱 위젯에 데이터를로드하는 방법
내 부팅 수신기는 이것이다 :
public class onBootReceiver extends BroadcastReceiver{
public static final String TAG = "BootReceiver";
private Context c;
@Override
public void onReceive(Context c, Intent i) {
// TODO Auto-generated method stub
boolean dontStop = true;
while(dontStop)
{
try
{
this.c=c;
if(isExternalStorageMounted())
{
dontStop = false;
}
else
for(int j=0;j<10000;j++)
Log.d(TAG, "###################### EXTERNAL STORAGE NOT MOUNTED ##########################");
}
catch (Exception e)
{
for(int j=0;j<10000;j++)
Log.d(TAG, "###################### EXTERNAL STORAGE NOT MOUNTED ##########################");
}
}
Intent externalStorageReady = new Intent(c, TheWidget.class);
externalStorageReady.setAction(GlobalVars.WIDGET_INTENT_ACTION_READ_PREFS_AFTER_BOOT);
c.sendBroadcast(externalStorageReady);
}
private boolean isExternalStorageMounted()
{
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_REMOVED.equals(state))
{
return false;
}
else if (Environment.MEDIA_SHARED.equals(state))
{
return false;
}
else if (Environment.MEDIA_UNMOUNTABLE.equals(state))
{
return false;
}
else if (Environment.MEDIA_UNMOUNTED.equals(state))
{
return false;
}
return true;
}
}
내가 (위젯 자체에서 사용 후) 의도 BOOT_COMPLETED
을 얻을 알고 있지만 난 그냥 내 저장된 데이터를 읽을 수 없습니다.
SharedPreferences
을 사용하는 것이 해결책이지만, 내가 알고있는 것은 장치를 부팅 할 때 SharedPreferences
이 더 이상 존재하지 않는다는 것입니다.
Android SDK에서 내장 SQL을 사용하여 데이터를 내부적으로 저장합니다.
도와주세요 ... :(
for 루프는 logcat 용이므로 adb에서 제공하는 logcat에서 볼 때 high로 설정했습니다. – Netanel