2013-09-22 10 views
21

Ich habe diese App, die ich mit Cache löschen, aber ich kann nicht herausfinden, wie getPackageManager in dem Fragment zu arbeiten. Hier ist mein Code. Jede Hilfe wäre sehr willkommen. Ich bin sehr neu in Android und Java. Vielen Dank.wie GetPackageManager in Fragment Android

public class Cache extends SherlockFragment { 

    Button cache; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.cache, null); 
     cache = (Button) view.findViewById(R.id.button3); 

     cache.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Toast.makeText(getActivity(), "Cache is Cleared", Toast.LENGTH_SHORT).show(); 
       PackageManager pm = getPackageManager(); 

       // Get all methods on the PackageManager 
       java.lang.reflect.Method[] methods = pm.getClass().getDeclaredMethods(); 

       for (java.lang.reflect.Method m : methods) { 
        if (m.getName().equals("freeStorageAndNotify")) { 
         // Found the method I want to use 
         try { 
          long desiredFreeStorage = Long.MAX_VALUE; // Request for free space 
          m.invoke(pm, desiredFreeStorage , null); 
         } catch (Exception e) { 
          // Method invocation failed. Could be a permission problem 
         } 
         break; 
        } 
       } 
      } 

      private PackageManager getPackageManager() { 
       // TODO Auto-generated method stub 
       return null; 
      }}); 
     return view; 
    } 
} 

Antwort

41

sollten Sie in der Lage sein getPackageManager() zugreifen zu können, durch getActivity().

Zum Beispiel getActivity().getPackageManager()

+1

dank Mann, der arbeitete – dfuse06