2014-09-10 2 views
0

В моем приложении в FirstActivity AsyncTask вызывается в конце asyntask secondactivity будет открытAndroid приложение автоматически приходит на передний план

, когда приложение находится в фоновом режиме, когда asyntask работает после завершения асинхронной задачи Application автоматически приходит на передний план без какого-либо взаимодействия с пользователем

как этого избежать?

ответ

0

Проверьте, если приложение находится на переднем плане перед началом второй активности с использованием способа, как это:

public static boolean isApplicationSentToBackground(final Context context) { 
    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); 
    List<RunningTaskInfo> tasks = am.getRunningTasks(1); 
    if (!tasks.isEmpty()) { 
     ComponentName topActivity = tasks.get(0).topActivity; 
     if (!topActivity.getPackageName().equals(context.getPackageName())) { 
      return true; 
     } 
    } 
    return false; 
} 
0

Проверка открыта ли какая-либо деятельность или нет.

/*** 
    * Checking Whether any Activity of Application is running or not 
    * @param context 
    * @return 
    */ 
    public boolean isForeground(Context context) { 

     // Get the Activity Manager 
     ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); 

     // Get a list of running tasks, we are only interested in the last one, 
     // the top most so we give a 1 as parameter so we only get the topmost. 
     List<ActivityManager.RunningTaskInfo> task = manager.getRunningTasks(1); 

     // Get the info we need for comparison. 
     ComponentName componentInfo = task.get(0).topActivity; 

     // Check if it matches our package name. 
     if(componentInfo.getPackageName().equals(context.getPackageName())) 
      return true; 

     // If not then our app is not on the foreground. 
     return false; 
    } 

Используйте это как:

if(isForeground(context)) { 
    //Nothing to do 
} else { 

    /** 
      You can do here what you want to do 
     **/ 

} 
1

В Android можно найти приложение в переднем или заднем плане, как это:

ActivityManager activityManager = (ActivityManager) getApplicationContext() 
.getSystemService(Activity.ACTIVITY_SERVICE); 
String className = activityManager.getRunningTasks(1).get(0).topActivity 
.getClassName(); 

if (className.equals("your activity class name with package")) { 
//ToDO 
}