1

アプリケーション メッセージ フォルダーからメッセージが開かれたときにリスナーが必要です。これには ApplicationMenuItem を使用しますが、登録後、メッセージを開けなくなりました。

ApplicationMessageFolderRegistry messagefolderRegistry = ApplicationMessageFolderRegistry.getInstance();
        messaageMenuItemListener = new CVSMessaageMenuItemListener();
        CVSApplicationMenuItem menuItem = new CVSApplicationMenuItem();
        menuItem.registerMenuItemListener(messaageMenuItemListener);        
        messagefolderRegistry.registerMessageMenuItems(CVSApplicationMessage.TYPE_ALARMS, ApplicationMessage.Status.UNOPENED, new ApplicationMenuItem[]{menuItem});
        messagefolderRegistry.registerMessageIcon(CVSApplicationMessage.TYPE_ALARMS, ApplicationMessage.Status.UNOPENED, alarmsIcon);

そしてメニューアイテム:

public class CVSApplicationMenuItem extends ApplicationMenuItem {

    private CVSVector listeners;

    CVSApplicationMenuItem(){
        super(20);
    }

    public Object run(Object context) {
        if(!(context instanceof CVSApplicationMessage))
            return context;

        CVSApplicationMessage applicationMessage = (CVSApplicationMessage)context;
        if(listeners == null)
            return context;

        for (int i = 0; i < listeners.size(); i++) {
            ((ICVSApplicationMessageMenuItemListener)listeners.itemAt(i)).messageReaded(applicationMessage);
        }
        return context;
    }

    public void registerMenuItemListener(ICVSApplicationMessageMenuItemListener l){
        if(listeners == null)
            listeners = new CVSVector();

        if(l != null)
            listeners.addItem(l);
    }

    public String toString() {
        return null;
    }

}

メッセージ一覧 (ホーム通知アイコンから開く) でメッセージを確認できますが、開くことができません。次のようにすると動作しますが、メッセージが開かれたときにコールバックがありません:

//messagefolderRegistry.registerMessageMenuItems(CVSApplicationMessage.TYPE_ALARMS, ApplicationMessage.Status.UNOPENED, new ApplicationMenuItem[]{menuItem});
4

1 に答える 1

0

ご理解のとおり、システムの「メッセージ プレビュー」画面が表示されなくなりました。私は同じ問題を抱えています。メニュー項目を登録すると、開くアクションが完全にオーバーライドされるようです。Message List Demoを確認したところ、ApplicationMenuItem の run() メソッド内でカスタム プレビュー メッセージ画面が開くことがわかりました。メッセージでシステムの「メッセージプレビュー」画面を開く方法が見つからなかったため、カスタム画面も実装します。

于 2013-01-05T14:52:48.093 に答える