問題タブ [tombstoning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
651 参照

c# - トゥームストーンの問題

私が自分のアプリケーションを墓石にしようとしたとき、私は自分の電話でこれを経験してきました。

データコントラクト名が「UTF8Encoding:http://schemas.datacontract.org/2004/07/System.Text」の「System.Text.UTF8Encoding」と入力することはできません。静的に不明なタイプを既知のタイプのリストに追加します。たとえば、KnownTypeAttribute属性を使用するか、DataContractSerializerに渡される既知のタイプのリストにそれらを追加します。

アプリのどこでもWCFまたはデータコントラクトを使用しておらず、トゥームストーンでコードを実行していないため、これがどこから来ているのかわかりません。コードのどこにもそのテキストやスキーマはありません。

スタックトレースでは、実行されているコードが表示されません。

このようなものをデバッグするにはどうすればよいですか?

解決策:簡単ではありませんが、デバッグメニューで例外を有効にすることから始めます。次に、shift + f9を使用していくつかの値を試し、原因を確認します。最終的な答えは、アプリがこのようなもので閉じる前に状態をクリアすることです。

このようにして、オブジェクトをクリアして、電話が状態を管理しようとしないようにします。カスタムシリアライザーを使用して電話に状態を保存し、再アクティブ化時に電話から読み取るための独自のコードを追加しました。アプリが十分に単純で、WebセキュリティやFacebookログインなどがない文字列と数字だけであれば、墓石を処理するために電話に任せることができると思います。私の場合、より堅牢なシステムが必要でした。

0 投票する
1 に答える
172 参照

c# - WP7 - アプリケーションの非アクティブ化およびアクティブ化中の奇妙な動作

情報が見つからないように見える奇妙な動作が発生しています。アプリケーションから離れてから戻ると (たとえば、デバイスを起動するBingMapsDirectionsTaskか、単にデバイスをロックおよびロック解除することにより)、再開時に画面全体が高さの約 1/4 だけ上に押し上げられます。

これは、現在のアプリケーション ライフ サイクル (またはライフ サイクルの欠如) を処理する方法と関係があると推測していApplication_ActivatedますApplication_Deactivated

これは、この不思議な動作を示す簡単なクリップです。なぜなら、これ以上うまく説明できないからです。

http://www.youtube.com/watch?v=BWHJT59F000

別のデフォルトの VS2010 Express プロジェクトを作成しましたが、同じように動作するので、多くの人が同じ問題を抱えていると思います。

よろしくお願いします。

0 投票する
1 に答える
147 参照

c# - ページがナビゲートされるとき、または廃棄状態から再開するときだけ、一時的な状態を常にロードする必要がありますか?

私は Windows Phone 7.5 Unleashed を読んでいますが、次のようなコードがたくさんあります (ページのコード ビハインド)。

廃棄された状態から再開すると false になるという考え方なloadedので、ビュー モデルを再構築する必要があることがわかります。

私の質問は:ifブロックの外側に一時的な状態をロードするのはなぜですか? メモリが破棄されていない場合 (つまり、アプリケーションが廃棄されていない場合)、状態をリロードせずに古いビュー モデルを使い続けることはできないのでしょうか?

ページがナビゲートされるとき、または廃棄状態から再開するときだけ、一時的な状態を常にロードする必要がありますか?

0 投票する
2 に答える
1127 参照

windows-phone-7 - Wp7 シリアライゼーション セキュリティ例外

まず第一に、説明は多くのコードで少し長いかもしれませんが、できる限りの情報を提供したくありません。私は自分のアプリのトゥームストーンを使用しており、シリアル化されたクラスを保存したいと考えています:

そして、ナビゲートされたものには例外があります... まさにここにあります:

そして今、例外が来ていることに気をつけてください:

私はこれに関連して多くのことを調査しましたが、私は空っぽになりました:(どんな助けも感謝しています.

[編集]

問題のような縫い目は、TombStone クラスにプライベートなアクセシビリティがあることでした。それを変更しました...しかし、次の例外が発生しました。

データ コントラクト名が 'ArrayOfKeyValueOfstringJTokeneJCYCtcq:http://schemas.microsoft.com/2003/10/Serialization/Arrays' の 'Newtonsoft.Json.Linq.JObject' は予期されていません。たとえば、KnownTypeAttribute 属性を使用するか、DataContractSerializer に渡される既知の型のリストにそれらを追加することにより、静的に認識されていない型を既知の型のリストに追加します。

ここにも UserDetails クラスがあります

0 投票する
1 に答える
647 参照

c# - ラウンドトリップのシリアル化/逆シリアル化後はDataServiceContextを使用できません

WP7.1アプリでのトゥームストンのサポートに苦労しています。DataServiceContextの単一の長期インスタンスがあり、DataServiceStateヘルパーを使用してシリアル化および逆シリアル化しています。逆シリアル化すると、ルックアップキーとしてURIを使用して、コンテキストからUserクラスのインスタンスを正常に取得できます。例えば、

しかし、次のように、Userインスタンス(コンテキストから取得したばかり)にプロパティをロードしようとすると、次のようになります。

コンテキストは、「コンテキストは現在エンティティを追跡していません」というメッセージとともにInvalidOperationExceptionをスローします。デシリアライズはコンテキストの参照整合性を保持しないようです。

この問題をデモするための簡単なアプリを作成しました。Skydriveからダウンロード:http ://sdrv.ms/MhctLA

アプリはhttp://services.odata.org/OData/OData.svcにあるサンプルデータサービスを使用します。dataSvcUtilを手動で実行して、ODataDemo.csにプロキシを作成しました。生成されたコードのクラスDemoServiceにDataContract属性を追加する必要がありましたが、他の変更は行われていないことに注意してください。

アプリが実行されたら、[データサービスコンテキスト]ボタンをタップします。次のページでは、データサービスからすべての製品をロードし、コンテキストから取得する製品をランダムに選択し、その製品のID URIをキャッシュしてから、製品のCategoryプロパティをロードします。

次に、「シリアル化」ボタンをタップします。アプリは、DataServiceStateを使用してコンテキストをシリアル化します。

最後に、「逆シリアル化」ボタンをタップします。アプリはコンテキストを逆シリアル化し、復活したコンテキストに対して次のことを試みます。

  1. DataServiceContext.TryGetEntityとキャッシュされたURIを使用して製品を取得します。
  2. DataServiceContext.TryGetUriを使用して、同じ製品のURIを取得します。
  3. 製品のCategoryプロパティをロードします。

ステップ1は成功しますが、ステップ2と3は失敗します。TryGetUriがコンテキストから取得したばかりのエンティティの記述子を見つけられないという事実は、逆シリアル化されたコンテキストに問題があることを示しています。

私はひどく間違ったことをしていますか?それともこれはバグですか?

0 投票する
1 に答える
849 参照

windows-phone-7 - WP7 tombStoning 中に LiveConnectSession を保存する方法は?

MS が提供する PhotoSkyOnTheGo の例の Windows ライブ サインイン戦略を使用しています。したがって、アプリが起動すると、Windows Live サインイン ページが表示されます。

アプリの実行時に、SkyDrive に接続する LiveConnectSession を覚えています。

アプリが廃棄されたら、LiveConnectSession を保存する方法が必要です。IsolatedStorageSettings.ApplicationSettings が機能しないのは、おそらく LiveConnectSession がシリアル化できないためです (デバッグ出力に InvalidDataContractException が表示されます)。

では、アプリが廃棄された場合に備えてセッションを保存するにはどうすればよいですか? または、提供されている PhotoSkyOnTheGo の例はごみであり、SkyDrive にアクセスしているときはいつでも再接続できるようにする必要がありますか?

0 投票する
1 に答える
1486 参照

c# - メトロアプリは、廃棄のために画像をどのようにキャッシュする必要がありますか (また、キャッシュする必要があります)?

URI のプロパティを持つオブジェクトのコレクションをダウンロードする ac# メトロ アプリがあります。このコレクションは、Image ソースがバインドされた ListBox にバインドされています。これは正常に機能します。

アプリが廃棄されている場合、コレクションやインターネットからダウンロードした画像を含むすべてのアプリの状態を保持したいと考えています。

ケースをカバーすると、ユーザーのアクションにより、コレクションがダウンロードされ、正しく表示され、別のアプリに切り替わり、アプリが終了します。その後、ユーザーはアプリに戻り、以前とまったく同じ表示を期待しますが、現在はインターネットに接続していません。

コレクションの保存は簡単で、Image の ImageLoaded イベントへのフックは簡単ですが、その画像を保存するにはどうすればよいでしょうか?

これは必要な機能ですか? Windows はこのタイプの http ベースのイメージを自動的にキャッシュしますか?

API は RP 用に変更されており、コンストラクターが ImageSource を受け入れられなくなったため、WritableBitmap を使用する一般的に見られる例は機能しなくなりました。

アップデート:

Metro APP - BitmapImage を Byte[] に、または Web からイメージをダウンロードし、それを Byte[] 配列に変換します。これ は私が恐れていたものです。これらは、既存の動作中のバインドされたイメージ要素を使用せず、別の http 呼び出しを行います。すべての画像を 2 回ダウンロードしたくありません。スパイクを試して、このシナリオで Windows が http 要求をキャッシュするかどうかを確認します。

0 投票する
1 に答える
669 参照

c# - WP7での墓石

WP7アプリにトゥームストーニングを実装したいのですが、このアプリはMVVMパターンに基づいていません。それを実装するために、誰かが私にその良い例を紹介してもらえますか?したがって、いくつかの汎用クラスを使用してアプリの状態を維持できます。

0 投票する
2 に答える
220 参照

iphone - 画面のスクリーンショットを撮る前に、ユーザーがiOSデバイスのハードボタンを押したときを知るにはどうすればよいですか?

iOSでは、ユーザーがハードボタンを押すと、システムがアプリの状態のスクリーンショットを作成し(ユーザーが読み込みを透過的にするために、アプリの次回の起動時に表示するため)、 UIApplicationDelegateのapplicationDidEnterBackgroundを呼び出して、バックグラウンド状態になったアプリを示します。そうですか?

私がする必要があるのは、システムがスクリーンショットを撮る前に、ユーザーがハードボタンを押したことを知ることです。確かに、将来アプリが再び起動したときにいくつかのものを非表示にしたいので、バックグラウンド状態に移行する場合に備えてビューを変更したいと思います。

スクリーンショットが撮られた後、applicationDidEnterBackgroundが呼び出されたようです。BEFOREと呼ばれる方法はありますか?

ありがとう

0 投票する
1 に答える
116 参照

windows-phone-7 - どちらのアプローチが優れていますか? 「アプリを廃棄し、再開時にデータをリロードする」または「ロック画面/バックグラウンドで実行する」

私は現在、ネットからデータを取得する必要があるアプリケーションに取り組んでいます。しかし、ユーザーがスタート ボタンを押すか、他のアプリケーションを起動すると、アプリケーションのデータ フェッチ プロセスが中断され、アプリケーションは WebException などの例外をスローします。

これを防ぐために、ユーザーが非アクティブ化した場合でも、アプリをバックグラウンドで強制的に動作させました。これは悪いアプローチであり、アプリを廃棄し、状態辞書から状態を再開するアプローチはより良いものでしょうか?