2012-11-29 2 views
0

У меня работает мой сервис, но по какой-то причине он не начнет мою деятельность. Он также не показывает ошибку в logcat. Я хочу, чтобы мой сервис начал другую деятельность. Это возможно? Я проверил, чтобы убедиться, что инструкция if была правильной, и это так. Он распечатывает HELLO.Как получить мой сервис для начала деятельности?

код услуги ниже:

package com.example.textsmslock; 
import java.util.Iterator; 
import java.util.List; 
import android.app.ActivityManager; 
import android.app.Service; 
import android.content.Intent; 
import android.content.pm.PackageManager; 
import android.os.IBinder; 
import android.util.Log; 
public class Logs extends Service 
{ 
    @Override 
    public IBinder onBind(Intent arg0){ 
     // TODO Auto-generated method stub 
     return null; 
    } 
    @Override 
     public void onStart(Intent intent, int startId) { 
      // TODO Auto-generated method stub 
      super.onStart(intent, startId); 
      System.out.println("LOGS STARTED"); 
      ActivityManager am = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE); 
      List l = am.getRunningAppProcesses(); 
      Iterator i = l.iterator(); 
      PackageManager pm = this.getPackageManager(); 
      while(i.hasNext()) 
      { 
       ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next()); 
       try 
       { 
        CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA)); 
        Log.w("LABEL", c.toString()); 
        //System.out.println("this is the charsequence: " + c); 
        //System.out.println("this is the log: " + Log.w("LABEL", c.toString())); 
        if(c.equals("Messaging")) 
        { 
         System.out.println("HELLO \n"); 

         startActivity(new intent(("com.example.textsmslock.Enable")); 

        } 
       } 
       catch(Exception e) 
       { 
        //Name Not FOund Exception 
       } 
     } 
     @Override 
     public void onDestroy() { 
      // TODO Auto-generated method stub 
      super.onDestroy(); 
      System.out.println("LOGS STOPPED"); 
     } 
} 

андроида манифеста

<activity 
     android:name=".Enable" 
     android:label="@string/title_activity_enable" > 
     <intent-filter> 
      <action android:name="com.example.textsmslock.Enable" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 
<service android:name=".Logs" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </service> 

ответ

0

Вы должны добавить флаг Intent.FLAG_ACTIVITY_NEW_TASK намерению деятельности.

Эта линия

startActivity(new intent(("com.example.textsmslock.Enable")); 

должны теперь быть

Intent i = new Intent(this, YourActivity.class); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(i); 
+0

Это сделал трюк. Спасибо большое!! –

Смежные вопросы