Как сгенерировать имя пакета при открытии приложения для Android? - PullRequest
0 голосов
/ 15 октября 2018

После поиска я нашел способ создания имени пакета, но я не могу сгенерировать имя пакета, когда кто-то открывает или закрывает приложение, у кого-нибудь есть идеи, как это сделать?Код ниже - это то, что я использовал для генерации имени пакета.

public String getTopActivity() {
    String topPackageName = "";
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                UsageStatsManager mUsageStatsManager = (UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE);
                long time = System.currentTimeMillis();
                // We get usage stats for the last 10 seconds
                List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 10, time);
                // Sort the stats by the last time used
                if (stats != null) {
                    SortedMap<Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>();
                    for (UsageStats usageStats : stats) {
                        mySortedMap.put(usageStats.getLastTimeUsed(), usageStats);
                    }
                    if (mySortedMap != null && !mySortedMap.isEmpty()) {
                        topPackageName = mySortedMap.get(mySortedMap.lastKey()).getPackageName();
                        Log.e("TopPackage Name", topPackageName);
                    }
                }
            }

    return topPackageName;

}

1 Ответ

0 голосов
/ 15 октября 2018

Для этого вам необходимо понять жизненный цикл активности.Вот пример:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    show("onCreate");
}

@Override
public void onStart() {
    super.onStart();
    show("onStart");
}

@Override
public void onRestart() {
    super.onRestart();
    show("onRestart");
}

@Override
public void onResume() {
    super.onResume();
    show("onResume");
}

@Override
public void onPause() {
    super.onPause();
    show("onPause: bye bye!");
}

@Override
public void onStop() {
    super.onStop();
    show("onStop.");
}

@Override
public void onDestroy() {
    super.onDestroy();
    show("onDestroy.");
}

private void show(String s) {
    Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
}

Теперь вы можете понять жизненный цикл, используйте эти методы.Вызовите getTopActivity() из таких методов, как onCreate, onStart(), onPause() и т. Д., Например,

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getTopActivity();
}

@Override
protected void onStart() {
    super.onStart();
    getTopActivity();
}

@Override
protected void onPause() {
    super.onPause();
    getTopActivity();
}

См. Жизненный цикл активности для получения дополнительной информации и всех подобных методов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...