zoukankan      html  css  js  c++  java
  • 数据处理应用程序必须完成CAknAppUi::OpenFileL(转)

    • 设备, 软件 版本:

    S60 3rd Edition, S60 3rd Edition, FP1

    • 详细描述

    当系统要根据MIME类型来寻找并启动一个程序打开某文件时,改程序的CAknDocument::OpenFileL()方法将收到调用。但如果该程序已经运行在后台了,那它的OpenFileL()调用将无法收到。

    • 解决方案

    数据处理程序不光要完成CEikDocument::OpenFileL(),还要完成CAknAppUi::OpenFile()。

    一个通常的解决办法是在其中直接调用document的OpenFileL:

    void CHandlerAppUi::OpenFileL( const TDesC& aFileName )
     
    {
     
    CHandlerDocument* doc = static_cast<CHandlerDocument*> ( Document() );
     
    doc->OpenFileL( ETrue, aFileName, iEikonEnv->FsSession() );
     
    }

    如果该程序被放置在后台,那调用程序必须要调用TApaTask::SwitchOpenFile():

    TBool CCallingAppUi::RefreshDocumentFileL( const TUid& aUid, const TDesC& aFileName )    
    {
     
    TApaTaskList taskList( iCoeEnv->WsSession() );
     
    TApaTask task = ( taskList.FindApp( aUid ) ); // Find handler application by its UID
     
    if ( task.Exists() )
     
    {
     
    // Calls CAknAppUi::OpenFileL(), requires SwEvent capability
     
    User::LeaveIfError( task.SwitchOpenFile( aFileName ) );
     
    return ETrue;
     
    }
     
    return EFalse;
     
    }
  • 相关阅读:
    检查型异常(Checked Exception)与非检查型异常(Unchecked Exception)
    maven跳过单元测试-maven.test.skip和skipTests的区别
    java JFR
    Docker常用命令
    关键字group by 、 Having的 用法
    css特效
    sql
    初识Hibernate之理解持久化类
    Hibernate 搭建
    基本 SQL 之增删改查
  • 原文地址:https://www.cnblogs.com/yaoliang11/p/1846653.html
Copyright © 2011-2022 走看看