我不知道如何在片段中执行此操作。这里的大多数问题和答案都围绕正常活动(扩展了AppCompatActivity)。
我所拥有的是带有底部导航的应用程序,该应用程序使用片段来切换屏幕。我尽力使一切正常,但没有任何效果,所以我决定在这里寻求帮助。我在使用不同的代码块时遇到了不同的错误。
我的目标是获取正在运行的非系统应用程序的列表,并在可能的情况下获取它们运行了多少分钟/小时。
import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
public class ListFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_list,null);
TextView tv1 = (TextView)view.findViewById(R.id.list1);
Intent mainIntent = new Intent(Intent.ACTION_MAIN,null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> pkgAppList = getActivity().getPackageManager().queryIntentActivities(mainIntent,0);
for(int i=0; i<pkgAppList.size(); i++){
System.out.println(pkgAppList.get(i).toString());
}
return view;
}
}
这是我在这里尝试过的最后一个代码。我的理解方式是在代码块中使用了方法和类,但不适用于片段(扩展Fragment)。有什么可能的解决方法?
答案 0 :(得分:0)
您可以这样做:
ActivityManager am = (ActivityManager) getActivity().getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses();
for (int i = 0; i < runningAppProcessInfo.size(); i++) {
if(runningAppProcessInfo.get(i).processName.equals("com.the.app.you.are.looking.for")) {
// Do your stuff here.
}
}
希望有帮助!