Как я могу сохранить элементы списка, даже если я перезапущу приложение?
Как я могу сохранить элементы списка, даже если я перезапустить приложение в приложении Windows Phone. Я хочу, чтобы они были каким-то образом сохранены в файле, а затем прочитаны при следующем запуске приложения. Пожалуйста, помогите.. Хорошо, я обновляюсь с кодом:
открытый частичный класс MainPage: PhoneApplicationPage {#region VariableDeclaration
DispatcherTimer timer = new DispatcherTimer();
WebClient client = new WebClient();
WebBrowserTask Facebook = new WebBrowserTask();
WebBrowserTask YouTube = new WebBrowserTask();
WebBrowserTask Odnoklassniki = new WebBrowserTask();
WebBrowserTask Vkontakte = new WebBrowserTask();
List<ItemFormat> Items = new List<ItemFormat>();
DispatcherTimer PopulateIsoFile = new DispatcherTimer();
string SongBuffer;
int c = 1;
string Time;
#endregion
#region AppInit
// Constructor
public MainPage()
{
InitializeComponent();
if (Microsoft.Phone.Net.NetworkInformation.DeviceNetworkInformation.IsNetworkAvailable == false)
{
MessageBox.Show("No internet connection", "Error", MessageBoxButton.OKCancel);
}
else
{
if (BackgroundAudioPlayer.Instance.PlayerState == PlayState.Playing)
{
PauseBtn.Visibility = Visibility.Visible;
PlayBtn.Visibility = Visibility.Collapsed;
}
else
{
BackgroundAudioPlayer.Instance.Track = new AudioTrack(new Uri("http://air-online2.hitfm.md/hitfm.mp3"), "HITFM", "Включи себя", null, null);
PlayBtn.Visibility = Visibility.Visible;
PauseBtn.Visibility = Visibility.Collapsed;
}
BackgroundAudioPlayer.Instance.PlayStateChanged += Instance_PlayStateChanged;
SlideView.Begin();
SlideView.Completed += SlideView_Completed;
SlideView.AutoReverse = true;
}
timer.Interval = TimeSpan.FromSeconds(30);
timer.Tick += timer_Tick;
timer.Start();
Loaded += timer_Tick;
}
#region DownloadTrackInfo
void timer_Tick(object sender, EventArgs e)
{
try
{
client.Encoding = System.Text.Encoding.UTF8;
client.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.Now.ToString();
client.DownloadStringAsync(new Uri("http://air-online2.hitfm.md/status_hitfm.xsl"));
client.DownloadStringCompleted += client_DownloadStringCompleted;
}
catch (System.Net.WebException)
{
}
}
void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
try
{
string[] raw = e.Result.Substring(166).Split('-');
if (raw[0].Contains(":"))
{
Artist.Text = raw[0].Replace(":", string.Empty).Substring(0, raw[0].Length - 1);
Title.Text = raw[1].Substring(1);
}
else
{
Artist.Text = raw[0];
Title.Text = raw[1].Substring(1);
}
TitleProgress.Visibility = Visibility.Collapsed;
Title.Foreground = new SolidColorBrush(Colors.White);
Artist.Foreground = new SolidColorBrush(Colors.White);
if (DateTime.Now.Minute < 10)
{
Time = "0" + DateTime.Now.Minute.ToString();
}
else
{
Time = DateTime.Now.Minute.ToString();
}
ItemFormat Item = new ItemFormat(e.Result.Substring(166).Replace(":", string.Empty), c, DateTime.Now.Hour.ToString() + ":" + Time);
if ((!(Item.Song == SongBuffer)) || (Recent.Items.Count == 0))
{
Recent.Items.Add(Item);
SongBuffer = Item.Song;
c += 1;
}
}
catch (System.SystemException)
{
}
}
}
public class ItemFormat
{
public string Song { get; set; }
public int Count { get; set; }
public string Time { get; set; }
public ItemFormat(string Song, int count, string time)
{
this.Song = Song;
this.Count = count;
this.Time = time;
}
}
}
Я использую этот список для своего рода плейлиста для радио. Но мне нужно, чтобы мои элементы были сохранены, даже когда пользователь нажимает кнопку назад или находится под экраном блокировки. Пожалуйста, помогите мне сохранить мои дорогие вещи.
1 ответ
Существует несколько способов хранения данных между "сессиями":
- Использование файлов в
IsolatedStorage
сериализовать / десериализовать из. - С помощью
IsolatedStorageSettings
для той же цели, но с меньшим количеством данных. - Используя базу данных, SQL CE или sqlite
Я предлагаю вам использовать первый метод, потому что он самый простой, и вы получите наименьшее количество ошибок с ним. Просто сериализуйте данные в файл, когда вам это нужно, при закрытии приложения или при его изменении. Затем вы загружаете данные при запуске из файла (если он существует) и заполняете первоначальный список.