簡體   English   中英

Android-檢測來自家庭或歷史的應用程序啟動

[英]Android - detecting application launch from home or history

檢測從主屏幕/歷史屏幕啟動Android“應用程序”的最佳方法是什么?

基本上,我要實現的目標是強制用戶每次返回應用程序時都登錄到某些屏幕(即,一旦登錄,他們就擁有對所有活動的完全訪問權限,但本質上,我希望他們在登錄時重新進行身份驗證通過在主屏幕上啟動返回應用程序)。

我知道以前曾問過類似的問題(即如何記錄應用程序的啟動情況),但是我所見的問題都無法解決。 歡迎所有想法...

關於什么

    if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY )!=0) {
        Log.d(TAG, "Called from history");
    }

這使用一個簡單的Intent標志

檢測從主屏幕/歷史屏幕啟動Android“應用程序”的最佳方法是什么?

你不能,AFAIK。

基本上,我要實現的目標是強制用戶每次返回應用程序時都登錄到某些屏幕(即,一旦登錄,他們就擁有對所有活動的完全訪問權限,但本質上,我希望他們在登錄時重新進行身份驗證通過在主屏幕上啟動返回應用程序)。

請使用明智,用戶友好的登錄系統。 例如,如果您認為他們的登錄憑據基於時間是陳舊的,則強制他們再次登錄。 您可以通過檢查onCreate()的憑據來完成此操作,如果憑據過時,則調用startActivity()來啟動您的登錄活動(或彈出您的登錄對話框,或通過任何方式登錄它們)。

當然,更好的方法是完全跳過登錄。 除非這是“密碼安全”,銀行應用程序或其他需要高於平均水平的安全性的東西,否則您不需要他們登錄,並且如果用戶認為不需要您的登錄要求,則會感到惱火。 大多數移動應用程序不需要身份驗證。

基於用戶如何進入活動來強制登錄是用戶敵對的。 您是在告訴用戶打算將手機用於除您的應用以外的其他用途,他們是二等公民。

只需創建一個沒有內容視圖的樹樁活動,並在應用程序啟動時啟動其他活動

例如,將以下內容放入onCreate中:

Class<?> myclass;

if(isTimeForActivity1){
    myclass = Activity1.class;
}else if(isTimeForActivity2){
    myclass = Activity2.class;
}

startActivity(new Intent(this, myclass));
finish();

嘗試查看具有精心設計的解決方案的“ OI Safe”應用程序(我也不知道代碼是否也經過精心設計,但是,您會發現:p)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM