2011-11-08 28 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; 
} 
相关问题