2

アプリウィジェットがバックグラウンドに移動したときにUIを更新したくない(表示されない)のですが、アプリウィジェットがバックグラウンドにあることをどのように知ることができますか?

4

1 に答える 1

1

ホームスクリーン ウィジェットが現在表示されているかどうかを検出することはできません。これを要求する未解決のバグ レポートがここにあります

せいぜい、ホームスクリーン (または一般的なランチャー) が表示されているかどうかを確認することができます。

public boolean isHomeShowing(){
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    ArrayList<string> homeList = new ArrayList<string>();
    for(ResolveInfo info : this.getPackageManager().queryIntentActivities(intent, 0)){
        homeList.add(info.activityInfo.packageName);
    }

    ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
        for (RunningTaskInfo t : am.getRunningTasks(1)) {
            if (t != null && t.numRunning > 0) {
                ComponentName cn = t.baseActivity;
                if (cn == null)
                   continue;
                else
                   if (homeList.contains(cn.getPackageName())) return true;
            }
        }
    return false;
}
于 2013-03-16T07:38:08.520 に答える