在Android中利用PkgUsageStats获取app的运行时间时,ComponentName name=applicationInfo.intent.getComponent();这段代码是什么意思,为什么在Eclipse中老是说intent不是一个域
1条回答
- weixin_36273941 2016-09-29 08:47关注
public long getTime(ApplicationInfo applicationInfo){
ComponentName name=applicationInfo.intent.getComponent(); long useTime; try{ Class<?> ServiceManager=Class.forName("android.os.ServiceManager"); Method getService=ServiceManager.getMethod("getService",java.lang.String.class); Object onRemoteService=getService.invoke(null, "usageStats"); Class<?> cStub=Class.forName("com.android.internal.app.IUsageStats$Stub"); Method asInteface=cStub.getMethod("anInteface",android.os.IBinder.class); Object oIUsageStats=asInteface.invoke(null, onRemoteService); Method getPkgUsageStats=oIUsageStats.getClass().getMethod("getPkgUsageStats",ComponentName.class); Object state=getPkgUsageStats.invoke(oIUsageStats, name); Class<?> PkgUsageStats=Class.forName("com.android.internal.os.PkgUsageStats"); //lounchCount=PkgUsageStats.getDeclaredField("lacnchCount").getInt(state); useTime=PkgUsageStats.getDeclaredField("usageTime").getInt(state); appInfo.setUseTime(useTime); } catch(Exception e){ e.printStackTrace(); } return applicationInfo.getUseTime(); } 这是源码,大神帮我看看
解决 无用评论 打赏 举报