0

私のアプリにサインアップフローがあります。成功したサインアップを投稿するアクティビティを開始します(非同期ネットワークコール)。 15〜20秒かかる申し込みプロセス中に、他のアプリに行くと、サインアップ後の活動が開始されたときに私のアプリがフォアグランドに向かいます。サインアップフラグメントでAndroid:アクティビティ開始時にアプリケーションが自動的にフォアグラウンドになる

コール:PostSignUpActivityから

@Override 
public void onAttach(Context context) { 
     super.onAttach(context); 
     activity = getActivity(); 
    } 


    public void navigateToPostSignUp() { 
    startActivity(PostSignUpActivity.newIntent(activity, false, false)); 
    activity.finish(); 
} 

スニペット:マニフェストから

public static Intent newIntent(@NonNull Context context, 
            boolean someBool1, 
            boolean someBool2) { 
     Intent intent = new Intent(context, PostSignUpActivity.class); 
     intent.putExtra(BOOL_1, someBool1); 
     intent.putExtra(BOOL_2, someBool2); 
     return intent; 
    } 

スニペット:

<activity 
     android:name=".presentation.ui.activity.PostSignUpActivity" 
     android:exported="true" 
     android:screenOrientation="portrait" 
     android:windowSoftInputMode="adjustResize" /> 

答えて

0

ポストのサインアップでは、あなたは活動がであるかどうかを確認することができます背景かどうか。アクティビティがバックグラウンドの場合は、通知を表示するか、アクティビティを開始することができます。

次の方法を使用して、アクティビティがバックグラウンドであるかどうかを確認できます。

public boolean isInBackground(){ 
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 
List<RunningAppProcessInfo> appProcesses= activityManager.getRunningAppProcesses();  


for (RunningAppProcessInfo appProcess : appProcesses) { 

    PackageInfo p = null; 
    try { 
     p = this.getPackageManager().getPackageInfo(appProcess.pkgList[0], PackageManager.GET_PERMISSIONS); 
    } catch (NameNotFoundException e) { 
     e.printStackTrace(); 
    } 



    if(p != null && p.packageName.equals(getPackageName()) && appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND){         
     Log.d("Is in background:", "false"); 
     return false; 
    } 
} 

Log.d("Is in background:", "true"); 
return true;} 
関連する問題