2009-12-28 21 views

cevap

7

Bu yapabilecekleriniz:

  • kullanım ApplicationManager.getForegroundProcessId()
  • kullanım ApplicationManager.getVisibleApplications() işlem kimliği ile
  • kullanım ApplicationManager.getProcessId() Uygulama aramak için çalışan tüm uygulama almak
  • belirtilen süre ile TimerTask içinde bunu yapın cevap için
    public class AppListenerApp extends Application { 
    int mForegroundProcessId = -1; 
    
    public AppListenerApp() { 
        Timer timer = new Timer(); 
        timer.schedule(mCheckForeground, 2000, 2000);      
    } 
    
    public static void main(String[] args) { 
        AppListenerApp app = new AppListenerApp(); 
        app.enterEventDispatcher(); 
    } 
    
    TimerTask mCheckForeground = new TimerTask() { 
        public void run() { 
         int id = getForegroungProcessID(); 
         if(id != mForegroundProcessId) 
         { 
          mForegroundProcessId = id; 
          String name = 
           getAppNameByProcessId(mForegroundProcessId); 
          showMessage(name); 
         } 
        }; 
    }; 
    
    private int getForegroungProcessID() { 
        return ApplicationManager.getApplicationManager() 
          .getForegroundProcessId(); 
    } 
    
    private String getAppNameByProcessId(int id) { 
        String result = null; 
        ApplicationManager appMan = 
           ApplicationManager.getApplicationManager(); 
        ApplicationDescriptor appDes[] = 
           appMan.getVisibleApplications(); 
        for (int i = 0; i < appDes.length; i++) { 
         if (appMan.getProcessId(appDes[i]) == id) { 
          result = appDes[i].getName(); 
          break; 
         } 
        } 
        return result; 
    } 
    
    private void showMessage(String message) { 
        synchronized (Application.getEventLock()) { 
         Dialog dlg = new Dialog(Dialog.D_OK, message, 
             Dialog.OK, null, Manager.FIELD_HCENTER); 
         Ui.getUiEngine() 
             .pushGlobalScreen(dlg, 1, UiEngine.GLOBAL_QUEUE); 
        } 
    } 
    } 
    
+0

Teşekkür ... Aksine o zaman bu, herhangi Dinleyici API ya da biz şimdiki çağrılan Ön Plan Uygulama alacak geçtiği Olay her türlü vardır. –

+0

Uygulamanız varsa, her zaman http://www.blackberry.com/developers/docs/4.5.0api/net/rim/device/api/system/Application.html#activate%28%29 etkinliğini kullanabilirsiniz. ama diğer durumlarda hiçbir seçenek görmüyorum. –

+0

Ok Teşekkür için teşekkürler yanıtı –

İlgili konular