簡體   English   中英

在Google Glass時間線中擁有卡片而無需使用服務類(或者具有沒有強制性的PendingIntent菜單活動的LiveCard)

[英]Having a Card in Google Glass Timeline without using Service class (or having a LiveCard without the mandatory PendingIntent Menu Activity)

我正在為Google Glass開發一個應用程序,該應用程序基本上會按工作流程順序調用多個活動(簡而言之:注冊視頻,通過語音識別添加一些元數據,將文件上傳到服務器,關閉應用程序); 這些操作必須按順序執行,因此我不需要“選項菜單”。

我僅使用Activity和startActivityForResult方法就做到了很好:我有一個主要的Activity,它依次調用一個Activity並等待其結果再調用下一個。

一切正常, 但是我的問題是此應用程序“不是持久性的”:II碰巧在過程中關閉了應用程序,通過向下滑動或讓Glass進入待機狀態,我丟失了該應用程序,因此所有到那時為止收集的數據。

這可能是因為我沒有在時間軸上添加任何卡片。 我想添加一個靜態卡,但是不能使用TimelineItem類(我正在使用XE17)。 我想添加一個LiveCard,但是我不想添加菜單(LiveCard的PendingIntent是必需的),並且我希望“工作流”立即啟動,而無需用戶再次點擊。

到目前為止,我唯一能想到的解決方案是添加一個虛擬Activity作為LiveCard的PendingIntent(以使應用程序滿意),然后在該控件的onCreate()或onStartCommand()方法內啟動第二個Activity。服務,並且此Activity將完成實際的工作(並可能通過某種綁定將信息返回給LiveCard,以避免在應用程序自然終止之前關閉該應用程序而導致數據丟失); 我還需要啟動第二個Activity,因為startActivityForResult方法的Service類中沒有等效的類。

不過,我不確定該解決方案是否可行,而且我認為這不是為Glass設計的正確方法。

我如何才能做到這一點(TL; DR:擁有一個帶有或不帶有LiveCard但不帶菜單且帶有工作流/操作流程的持久性應用程序)?

編輯:這不是我真正想要的,但是我找到了使用經典方法處理LiveCard PendingIntent的解決方案。 因此,我將傑西的答案標記為正確。 有關說明,請參閱答案中的我的最后評論。

您應該能夠將PendingIntent設置為非菜單項。 您可以指定任何隨機活動,在這種情況下,您可以指定自己的活動。

您應該能夠執行以下操作:

    Intent pendingIntent = new Intent(this, AccountsCard.class);
    pendingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    mLiveCard.setAction(PendingIntent.getActivity(this, 0, pendingIntent, 0));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM