2017-06-07 7 views
-1

現在、AndroidスタジオでAndroid用アプリを開発しています。基本的には、ユーザーがホームボタン、タブボタンを押したり画面をシャットダウンすると(アプリがバックグラウンドで実行されている間)、文字列が暗号化されて保存され、アプリケーションはログアウトします。問題は、暗号化が完了するまでにユーザーがタブモードにしてスワイプしてアプリを閉じると、暗号化が完了するまでに数秒かかります。ユーザーがアプリを終了しても、最終的な暗号化や最終的な機能を処理できる方法はありますか?ユーザーアンドロイドアプリが完全に終了したときに最終アクションを実行する方法 - Android Studio

+2

で試すことができている1アクティビティのライフサイクルとは独立していますが、アクティビティが破棄された後も引き続き作業できます。 –

+0

'AsyncTask'について読むと、あなたは' onPostExecute'アプリケーションを終了することができると思います。 –

+0

私はAndroidスタジオに少し新しく言及し、可能ならばいくつかの例を非常に感謝しています。 –

答えて

0

基本的に、あなたのMainActivity(DashboardActivity)にこのような何かを持っているアプリの

 private Boolean exit = false; 

     @Override 
     public void onBackPressed() { 

      if (exit) { 
       super.onBackPressed(); 
      } else { 
       FragmentManager manager = getSupportFragmentManager(); 
       if (manager.getBackStackEntryCount() <= 0) { 
        Utilities.showToastCompulsary(DashboardActivity.this, "Press Back again to Exit."); 
        exit = true; 
        encryptionProccess(); 
        new Handler().postDelayed(new Runnable() { 
         @Override 
         public void run() { 
          exit = false; 

         } 
        }, 3 * 1000); //manage your time as per process 
       } else { 
        super.onBackPressed(); 
       } 
      } 
     } 

別approchは、あなたがサービスを開始する場合は、onDistroyed方法

@Override 
protected void onDestroy() { 
    startLoader(); 
    encriptionProcess(); 
    stopLoader(); 
    super.onDestroy(); 
} 
+0

この答えは、暗号化アルゴリズムの速度がデバイスによって異なるため、ハンドラを思いつくことができないため、問題は解決しません。 –

+0

更新私の答え!これはあなたを助けるかもしれない! onDestroyedはアクティビティがシステムによって殺される前に呼び出されるので、これはそのアクティビティの最後のメソッドコールです –

関連する問題