×

Discussion Board

Results 1 to 7 of 7
  1. #1
    Regular Contributor
    Join Date
    Nov 2006
    Posts
    60

    un-hide application

    Доброго времени суток,

    решить проблему с тем как спрятать приложение от таск мэнеджера расписали достаточно подробно, и как бы всё работает, но появилась другая проблема: иногда всё же необходимо показать приложение, для настроек, например.
    И когда я пытаюсь запустить приложение - оно действительно пробует запуститься но получается ошибка что ресурс уже используется (panic 14), тобишь оно действительно запускается а не пытается открыть существующее,
    есть идеи как показать это скрытое приложение при попытке повторного запуска?

    всем заранее спасибо
    best regards,
    Vitaly

  2. #2
    Nokia Developer Champion
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,348

    Re: un-hide application

    Как-то приходилось сталкиваться с аналогичной проблемой. Вот какое было найдено решение:

    Функция скрывает (ETrue) или показывает (EFalse) иконку приложения в TaskManager'е. Индикатор работы приложения (Symbian 9.2) продолжает сигнализировать о том, что приложение по-прежнему запущено. При повторном запуске активируется уже запущенная копия приложения, функция на это влияния не оказывает.

    Code:
      
    TInt CYourAppUi::HideTask(TBool aHide)
    {
       TInt wgId = iEikonEnv->RootWin().Identifier();
       RWsSession session = iEikonEnv->WsSession();
       CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC(session, wgId);
       wgName->SetHidden(aHide);
       wgName->SetWindowGroupName(iEikonEnv->RootWin());
       
       // send app to Background   
        TApaTask task(iEikonEnv->WsSession( ));
       task.SetWgId(CEikonEnv::Static()->RootWin().Identifier());
        task.SendToBackground();   
       
       CleanupStack::PopAndDestroy(); 
       return KErrNone;
    }

  3. #3
    Regular Contributor
    Join Date
    Nov 2006
    Posts
    60

    Re: un-hide application

    а что это такое и как его получить?

    Индикатор работы приложения (Symbian 9.2)
    просто wgName->SetHidden(aHide); недостаточно чтобы скрыть приложение и призодился вызывать дополнительно

    Code:
    CEikonEnv::Static()->RootWin().EnableReceiptOfFocus(EFalse);
    CEikonEnv::Static()->RootWin().SetOrdinalPosition(-1000, ECoeWinPriorityAlwaysAtFront);
    best regards,
    Vitaly

  4. #4
    Nokia Developer Champion
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,348

    Re: un-hide application

    Quote Originally Posted by b_monkey View Post
    а что это такое и как его получить?
    просто на смартах с OS v9.2 и выше если приложение запущено, то в меню возле значка приложения в верхнем правом углу рисуется синий индикатор.
    выглядит это вот так (на скринах FP2, но на FP1 аналогично): pic.1 и pic.2

    Quote Originally Posted by b_monkey View Post
    просто wgName->SetHidden(aHide); недостаточно чтобы скрыть приложение и призодился вызывать дополнительно
    Code:
    CEikonEnv::Static()->RootWin().EnableReceiptOfFocus(EFalse);
    CEikonEnv::Static()->RootWin().SetOrdinalPosition(-1000, ECoeWinPriorityAlwaysAtFront);
    приведённый в предыдущем посте код проверен и работает корректно на 9.1 и 9.2, так что всего там достаточно. к тому же, надо учитывать ещё вызов SendToBackground().

  5. #5
    Regular Contributor
    Join Date
    Nov 2006
    Posts
    60

    Re: un-hide application

    к сожалению в моём случае это не работает корректно (да индикатор есть )

    если добавить эти "лишние" вызовы то приложение работает а этого самого индикатора нет - в этом и проблема

    кстати если делать SetHidden + SendToBackground/BringToForeground придлжение остаётся видимым в TM
    и на эмуляторе и на телефоне
    s60 FP1 (os 9.2)
    best regards,
    Vitaly

  6. #6
    Nokia Developer Champion
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,348

    Re: un-hide application

    попробуй ещё при запуске проверять не запущено ли уже приложение:

    файл MyApp.cpp (Main application class)

    Code:
    LOCAL_C CApaApplication* NewApplication()
       {
       RWsSession& wsSession = CCoeEnv::Static()->WsSession();
       TApaTaskList tlist(wsSession);
       _LIT(KMyApp, "MyAppName");
       TApaTask MyApp(tlist.FindApp(KMyApp));
    
       if(MyApp.Exists())
       {      
             wsSession.SetWindowGroupOrdinalPosition(MyApp.WgId(),2000);
             //MyApp.BringToForeground();
       }
       else
       {
             return new CMyApplication;
       }
          
       }

  7. #7
    Regular Contributor
    Join Date
    Nov 2006
    Posts
    60

    Re: un-hide application

    CAknAppUi::HideApplicationFromFSW(ETrue); для FP1 помогло

    взял тут

    а с Application поканичего не получилось, надо попробовать с маленьким проектом
    best regards,
    Vitaly

Similar Threads

  1. Porting existing application from Sun Wireless tookit 2.3 to Carbide.j 1.5
    By vgps in forum Tools and SDK Feedback (Closed)
    Replies: 3
    Last Post: 2007-06-30, 18:02
  2. Bringing application to foreground
    By ash_bhatia in forum Symbian User Interface
    Replies: 1
    Last Post: 2006-11-02, 13:39
  3. Hide application from the tasks list
    By ramiqadi in forum Symbian User Interface
    Replies: 1
    Last Post: 2005-07-13, 04:41
  4. Replies: 0
    Last Post: 2005-05-28, 10:20
  5. Hide Application from task list
    By ekramulhuq in forum Symbian
    Replies: 0
    Last Post: 2003-10-13, 05:51

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
×