亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在棒棒糖中獲取“ getTopActivity”名稱或獲取當前正在運行的應用程序包名稱?

如何在棒棒糖中獲取“ getTopActivity”名稱或獲取當前正在運行的應用程序包名稱?

青春有我 2019-12-27 09:13:16
我正在創建一個應用鎖定應用程序。如何在棒棒糖中獲取當前正在運行的任務?getRunningTaskinfo棒棒糖API中已棄用該方法,那么如何解決此問題?
查看完整描述

3 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

在API 21或更高版本中獲取“運行應用”的最佳解決方案是嘗試以下方法。這項工作對我來說


private String retriveNewApp() {

    if (VERSION.SDK_INT >= 21) {

        String currentApp = null;

        UsageStatsManager usm = (UsageStatsManager) this.getSystemService(Context.USAGE_STATS_SERVICE);

        long time = System.currentTimeMillis();

        List<UsageStats> applist = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 1000, time);

        if (applist != null && applist.size() > 0) {

            SortedMap<Long, UsageStats> mySortedMap = new TreeMap<>();

            for (UsageStats usageStats : applist) {

                mySortedMap.put(usageStats.getLastTimeUsed(), usageStats);

            }

            if (mySortedMap != null && !mySortedMap.isEmpty()) {

                currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName();

            }

        }

        Log.e(TAG, "Current App in foreground is: " + currentApp);


        return currentApp;


    }

    else {


        ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);

        String mm=(manager.getRunningTasks(1).get(0)).topActivity.getPackageName();

        Log.e(TAG, "Current App in foreground is: " + mm);

        return mm;

    }

}


查看完整回答
反對 回復 2019-12-27
  • 3 回答
  • 0 關注
  • 752 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號