2011-11-08 63 views
3

我想知道android中應用程序的最近啓動時間?我們如何檢查Android的應用程序的最近啓動時間?

+0

參考這裏:http://stackoverflow.com/questions/2324847/launch-time-of-an-app –

+0

親愛通過這個StackOverflow的常見問題第一:http://stackoverflow.com/faq#dontask –

+0

親愛的不要提出多餘的問題,否則社區會標記它或投票結束這類問題。 –

回答

1

您可以將系統時間記錄在應用程序的主要活動的onCreate中。然後這個時間可以在類級別字段中設置並從應用程序的其他地方訪問。 你也可以有類似的onResume變量(..)等

public class MainActivity extends Activity { 
    long launchTime; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     launchTime = System.currentTimeMillis(); 
     .... 
    } 
} 
+0

我想知道最近從我的應用程序啓動的其他應用程序。它可能嗎? – raj

0

你能做的就是創建一個跟蹤所有正在運行的應用程序的粘滯服務最好。

@Override 
public int onStartCommand(Intent intent, int flags, int startId) 
{ 

    Timer timer = new Timer(); 
    timer.scheduleAtFixedRate(new TimerTask() { 

     public void run() 
     { 
      final ActivityManager activityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); 
      final List<RunningTaskInfo> services = activityManager.getRunningTasks(Integer.MAX_VALUE); 
       for (int i = 0; i < services.size(); i++) { 
        if(!stalkList.contains(services.get(i).baseActivity.getPackageName())) 
        { 
          // you may store the time here 
          stalkList.add(services.get(i).baseActivity.getPackageName()); 
        } 
       } 

       List<RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses(); 
       for(int i = 0; i < procInfos.size(); i++) { 

        ArrayList<String> runningPkgs = new ArrayList<String>(Arrays.asList(procInfos.get(i).pkgList)); 

        Collection diff = subtractSets(runningPkgs, stalkList); 

        if(diff != null) 
        { 
         stalkList.removeAll(diff); 
        } 
       } 


     } 
    }, 20000, 6000); // every 6 seconds 


    return START_STICKY; 
} 
相關問題