c# - WinRT का उपयोग करके बढ़ती घटना नहीं बढ़ रही है




uwp windows-runtime windows-phone-8.1 win-universal-app (2)

मुझे WinRT का उपयोग कर विंडोज फोन 8.1 पर निलंबित कार्यक्रम में कोई समस्या है, यह आग नहीं है। मुझे नहीं पता क्यों। यह मेरा कोड है:

/// <summary>
/// Initializes the singleton application object. This is the first line of authored code
/// executed, and as such is the logical equivalent of main() or WinMain().
/// </summary>
public App()
{
    InitializeComponent();

    Suspending += OnSuspending;
#if DEBUG
    this.displayRequest = new DisplayRequest();
#endif
}

/// <summary>
/// Invoked when application execution is being suspended. Application state is saved
/// without knowing whether the application will be terminated or resumed with the contents
/// of memory still intact.
/// </summary>
/// <param name="sender">
/// The source of the suspend request.
/// </param>
/// <param name="e">
/// Details about the suspend request.
/// </param>
private void OnSuspending(object sender, SuspendingEventArgs e)
{
    var deferral = e.SuspendingOperation.GetDeferral();
    deferral.Complete();
}

मैंने लाइन var deferral = e.SuspendingOperation.GetDeferral(); पर ब्रेकपॉइंट सेट किया है var deferral = e.SuspendingOperation.GetDeferral(); और इसे विजुअल स्टूडियो के साथ डीबग किया। तब मैंने अपने फोन पर स्टार्ट बटन दबाया और एक और ऐप चलाया और लगभग 10 सेकंड इंतजार किया। OnSuspending नहीं चल रहा है।

कोई विचार?


Answers

जब आप डिबगिंग करते हैं तो निलंबित ईवेंट नहीं होगा (लेकिन आपकी ऐप सामान्य होने पर, यह ऐप से दूर जाने के ठीक बाद आग लग जाएगा) क्योंकि यह इस ब्लॉग पर भी कहा जाता है:

... आप इन्हें ट्रिगर करने के लिए हमेशा के लिए इंतजार करेंगे, भले ही आपका ऐप स्क्रीन पर आगे और पीछे स्विच हो! कारण सरल है: जबकि एक ऐप डिबग किया जा रहा है, विंडोज़ इसे निलंबित नहीं करेगा।

ध्यान दें कि इससे कुछ अजीब ऐप व्यवहार हो सकता है, जब निलंबन ईवेंट में कुछ गड़बड़ होती है - उदाहरण के लिए यदि आप फ़्रेम . Navigate विधि में कुछ जटिल वर्ग पास करते हैं और आप SuspensionManager का उपयोग करते हैं। जबकि आपके ऐप को डिबग करना ठीक काम करेगा (कोई निलंबन नहीं), लेकिन डीबग मोड के बिना क्रैश हो जाएगा।

यह जांचने के लिए कि आपकी ऐप कैसे व्यवहार करती है, आपको विजुअल स्टूडियो में डिबग लोकेशन टूलबार को खोलने, या दृश्यमान दिखाना होगा, वहां आपको एक ड्रॉपडाउन लाइफसीस इवेंट मिलेगा, वहां सस्पेंड करें , और उसके बाद ऐप - फिर से शुरू करें


Build मुख्य नोट से:

वे एचटीएमएल / सीएसएस / जावास्क्रिप्ट ऐप्स और सी # / एक्सएएमएल ऐप्स दोनों के लिए सामान्य एपीआई प्रदान कर रहे हैं। सी # और एक्सएएमएल का उपयोग किया जाएगा, लेकिन यह वास्तव में डब्ल्यूपीएफ या सिल्वरलाइट नहीं होगा।





c# uwp windows-runtime windows-phone-8.1 win-universal-app