亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Xamarin Android 在應用程序打開時發送回登錄信息

Xamarin Android 在應用程序打開時發送回登錄信息

C#
肥皂起泡泡 2021-12-05 16:38:34
我有一個 xamarin android 應用程序,它有幾個活動。每次用戶打開應用程序時,他們都必須輸入密碼才能使用該應用程序,我們不堅持登錄??蛻舳颂岢龅囊患率?,如果應用程序被最小化并再次打開它,則應將用戶送回登錄。我如何實現這一目標?據我所知,每個活動都有一個 OnResume 函數,但我不知道如何檢測應用程序是否來自后臺?由于這是一個 Xamarin Android 項目,因此是否也沒有通用的 App.cs 類可以將其放入?我必須把它放在每個活動上嗎?
查看完整描述

1 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

您將需要實施,Android.Arch.Lifecycle因為它是處理整個應用程序進入后臺并正確重新啟動的唯一真正方法(有許多處理 Activity 生命周期方法的技巧,但該庫是由 Google 編寫的,以避免那些導致和支持的所有問題自 14(?) 以來的所有 API。


第一:將Xamarin.Android.Arch.Lifecycle.Extensionsnuget 包添加到您的應用程序。


第二:在你的項目中實現一個 Android Application 子類,添加一個IGenericLifecycleObserver并通過以下方式注冊你的觀察者ProcessLifecycleOwner:


注意:您也可以在 Activity 子類中實現這一點,然后將該子類用作所有其他 Activity 的基類(當然除了 Login 之外)。


例子:

[Application]

public class App : Application, IGenericLifecycleObserver

{

    public App(IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer) : base(javaReference, transfer) { }


    bool Stopped;

    public void OnStateChanged(ILifecycleOwner p0, Lifecycle.Event p1)

    {

        Stopped |= p1 == Lifecycle.Event.OnStop;

        if (p1 == Lifecycle.Event.OnStart && Stopped)

        {

            // app is coming back from being in the background, do something...


            Stopped = false; // reset 

        }

    }


    public override void OnCreate()

    {

        base.OnCreate();

        ProcessLifecycleOwner.Get().Lifecycle.AddObserver(this);

    }

}


查看完整回答
反對 回復 2021-12-05
  • 1 回答
  • 0 關注
  • 234 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號