2013-08-17 17 views
0

我有appwidgetlistview。我們可以看到的一些信息hereAppwidget與收藏。非法工作

1)這個小部件在2.x上不工作。但是這個設備上的用戶在他的列表中看到這個小部件,並且可以在屏幕上移動它。他得到錯誤後。我可以通過任何方式在2.x上隱藏這個小部件嗎? Ofcouse,我可以將這個小部件的標題設置爲「MyWidget ...(3.x-4.x)」,但我認爲這不太好,

2)第二個問題。如果我打開主要活動,接下來點擊HOME,而不是BACK。現在點擊widget,打開我的widgetAct,但是在我看到的背景上也是主要活動。

3)另一種情況。打開widgetAct。看到這個活動。點擊BACK。現在長按:看最後開始的應用程序。點擊我的應用程序(它包含widgetAct)並看到這個widgetAct。活動或任何其他活動我的申請,但不widgetAct。

我嘗試了不同的情況:添加FLAG_ACTIVITY_NO_HISTORY,FLAG_ACTIVITY_NEW_TASK,FLAG_ACTIVITY_CLEAR_TOP。但沒有什麼幫助:

Intent i = new Intent(ctx, myActivityCls);  i.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId); 
i.setFlags(i.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
PendingIntent pi = PendingIntent.getActivity(ctx, 0, i, PendingIntent.FLAG_UPDATE_CURRENT); 
remoteViews.setOnClickPendingIntent(viewId, pi); 

我看到,我的widgetAct在打開只有FLAG_ACTIVITY_NEW_TASK標誌。

回答

0

我不知道爲什麼,但是...我設置了一些標誌以表示意圖,並在點擊小部件上啓動活動。真正開放的活動只有FLAG_ACTIVITY_NEW_TASK

解決方案: 1)將窗口小部件xml提供程序從xml文件夾移動到xml-v11。現在在2.x設備上,這個小部件被隱藏了。

2)第二種情況:設置爲widgetAct taskAffinity。但在這種情況下,在最近的應用程序中,我看到2個應用程序實例,因爲使用了2個堆棧活動修復它添加到widgetAct:

@Override 
protected void onPause() { 
    super.onPause(); 
    finish(); 
} 

3)點擊窗口小部件打開widgetAct。我關閉這個實例widgetAct並打開另一個widgetAct,但添加下面的標誌:FLAG_ACTIVITY_NO_HISTORY,FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS