2011-06-03 1 views
0

Existe-t-il un bon moyen d'empêcher le lancement d'une activité? Je voudrais créer une liste blanche ou une liste noire d'applications, puis empêcher le démarrage de ces instances.Empêcher l'activité de démarrer

Une solution possible consiste à interroger les tâches en cours d'exécution de temps en temps et de les éteindre, mais il semble qu'il pourrait manger à travers beaucoup de batterie.

Répondre

2

Ok, donc ce ne marche pas compter comme « BON MOYEN », pourrait très bien être aussi drainant sinon plus sur votre batterie, mais en ligne avec votre méthode de vote:

vous pouvez créer un service qui surveille la log chat (http://www.helloandroid.com/tutorials/reading-logs-programatically) need permission dans le manifeste:

<uses-permission android:name="android.permission.READ_LOGS" /> 

alors dans votre service quelque chose comme (très brut):

private void readLogAndKill(){ 
try { 
     Process process = Runtime.getRuntime().exec("logcat -d"); 
     BufferedReader bufferedReader = new BufferedReader(
     new InputStreamReader(process.getInputStream())); 

     String line; 
     while ((line = bufferedReader.readLine()) != null) { 
     if (line.contains("Starting Activity")){ 
      if(line.contains("com.twitter.android"){ 
        //kill twitter for example 
       } 
     } 
     } 

    } catch (IOException e) { 
    } 

} 

il peut y avoir une certaine façon d'attraper les événements "Starting Activity" - ou filtrer le journal que vous lisez pour seulement ces msgs.

+0

Intéressant! J'aime les bons hacks comme ça. Je ne sais pas si c'est aussi élégant que de regarder des processus, mais ça me fait penser aux logs maintenant. Merci! – James

+0

Comment tuez-vous les processus pour Android> 2.1? – kellogs

3

Désolé, cela n'est pas pris en charge par le SDK.