2013-02-25 7 views
0

사용자 이름을 입력하고 이미지를 첨부 할 수있는 페이지가 있습니다.덤 스톤을 반환 할 때 앱 인증 요구 사항

삭제 표시 상태에서 복귀 할 때 내 앱이 이미지를 반드시 복원해야합니까?

  1. 내 앱이 인증을 통과하지 못하는 앱 인증 요구 사항입니까? 또는 권장 패턴입니까?

  2. 예를 들어 피벗이있는 경우와 동일한 질문입니다. 선택한 피벗 항목의 인덱스를 저장하고 삭제 표시에서 활성화 할 때 선택을 복원하는 것이 필수입니까?

불필요 : 등 삭제 표시 및 직렬화 객체, 이미지, 나를 도울 수있는 인기있는 라이브러리 \ 프레임 워크가 있습니까?

답변

0

Technical certification requirements for Windows Phone에 따르면, 유일한 요구 사항은 다음과 같습니다

윈도우 폰 응용 프로그램은 사용자가 시작 버튼을 누를 때 비활성화 또는 장치 타임 아웃이 발생하는 경우 잠금 화면이 참여. Launcher 또는 Chooser API를 호출하여 Windows Phone 앱도 비활성화됩니다.

Windows Phone OS 7.0 앱은 비활성화 될 때 삭제 표시 (종료)됩니다. Windows Phone OS 7.1 이상의 응용 프로그램은 비활성화되었을 때 휴면 상태가되지만 리소스 사용 정책으로 삭제 표시가 나타나면 시스템에서 종료 될 수 있습니다.

해지 후 활성화되면 앱이 섹션 5.2.1 - 시작 시간의 요구 사항을 충족해야합니다.

섹션 5.2.1 - "시작 시간"은 시작 성능 및 응답성에 만 관련되므로 문제에 대한 인증 요구 사항이 없습니다.

그러나 사용자가 데이터를 입력하고 (이미지 첨부 등) 전화를 받았다고 가정하면 다른 물건을 가져 와서 응용 프로그램으로 돌아가서 입력 한 데이터가 손실되었습니다. 그것을 고맙게 생각하지 마라. 그러면 결함/버그와 같이 보일 것입니다.

주 (state)의 직렬화와 관련하여 Json, Xml 또는 다른 형식을 사용할 때보 다 성능이 10 배 이상 우수하므로 이진 직렬화를 사용하는 것이 좋습니다. ,


using System.IO; 

namespace MyCompany.Utilities 
{ 
    public interface IBinarySerializable 
    { 
     void Write(BinaryWriter writer); 
     void Read(BinaryReader reader); 
    } 
} 

using System; 
using System.Collections.Generic; 
using System.IO; 

namespace MyCompany.Utilities 
{ 
    public static class BinaryWriterExtensions 
    { 
     public static void Write<T>(this BinaryWriter writer, T value) where T : IBinarySerializable 
     { 
      if (value == null) 
      { 
       writer.Write(false); 
       return; 
      } 

      writer.Write(true); 
      value.Write(writer); 
     } 

     public static T Read<T>(this BinaryReader reader) where T : IBinarySerializable, new() 
     { 
      if (reader.ReadBoolean()) 
      { 
       T result = new T(); 
       result.Read(reader); 
       return result; 
      } 

      return default(T); 
     } 

     public static void WriteList<T>(this BinaryWriter writer, IList<T> list) where T : IBinarySerializable 
     { 
      if (list == null) 
      { 
       writer.Write(false); 
       return; 
      } 

      writer.Write(true); 
      writer.Write(list.Count); 
      foreach (T item in list) 
      { 
       item.Write(writer); 
      } 
     } 

     public static List<T> ReadList<T>(this BinaryReader reader) where T : IBinarySerializable, new() 
     { 
      bool hasValue = reader.ReadBoolean(); 
      if (hasValue) 
      { 
       int count = reader.ReadInt32(); 
       List<T> list = new List<T>(count); 
       if (count > 0) 
       { 
        for (int i = 0; i < count; i++) 
        { 
         T item = new T(); 
         item.Read(reader); 
         list.Add(item); 
        } 
        return list; 
       } 
      } 

      return null; 
     } 

     public static void WriteListOfString(this BinaryWriter writer, IList<string> list) 
     { 
      if (list == null) 
      { 
       writer.Write(false); 
       return; 
      } 

      writer.Write(true); 
      writer.Write(list.Count); 
      foreach (string item in list) 
      { 
       writer.WriteSafeString(item); 
      } 
     } 

     public static List<string> ReadListOfString(this BinaryReader reader) 
     { 
      bool hasValue = reader.ReadBoolean(); 
      if (hasValue) 
      { 
       int count = reader.ReadInt32(); 
       List<string> list = new List<string>(count); 

       if (count > 0) 
       { 
        for (int i = 0; i < count; i++) 
        { 
         list.Add(reader.ReadSafeString()); 
        } 
        return list; 
       } 
      } 

      return null; 
     } 

     public static void WriteSafeString(this BinaryWriter writer, string value) 
     { 
      if (value == null) 
      { 
       writer.Write(false); 
       return; 
      } 

      writer.Write(true); 
      writer.Write(value); 
     } 

     public static string ReadSafeString(this BinaryReader reader) 
     { 
      bool hasValue = reader.ReadBoolean(); 
      if (hasValue) 
       return reader.ReadString(); 

      return null; 
     } 

     public static void WriteDateTime(this BinaryWriter writer, DateTime value) 
     { 
      writer.Write(value.Ticks); 
     } 

     public static DateTime ReadDateTime(this BinaryReader reader) 
     { 
      var int64 = reader.ReadInt64(); 
      return new DateTime(int64); 
     } 
    } 
} 
+0

OK :

는 개인적으로, 나는 "상태"관련 클래스에 사용자 정의 인터페이스, IBinarySerializable를 구현하고 직렬화 코드를 작성하는 데 도움이 BinaryWriter 확장 클래스를 사용 따라서 인증을 통과해야하는 것은 아닙니다. 나는 앱을 게시하면서 크게 서두 르며, 나는이 문제를 업데이트로 해결할 것이다. –