2011-11-08 22 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

を持つことができ、あなたができる最善のは、実行中のアプリケーションのすべてを追跡するSTICKYサービスを作成することです。

@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; 
} 
関連する問題