相关疑难解决方法(0)

错误:Theme.Translucent&FLAG_ACTIVITY_REORDER_TO_FRONT

我有半透明主题的活动:

android:theme="@android:style/Theme.Translucent.NoTitleBar"
Run Code Online (Sandbox Code Playgroud)

此问题也可以通过以下主题重现:

<style name="MyTheme" parent="@android:style/Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackground">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)

此活动在启动时加载并保存在内存中(当我开始此活动时,我将该FLAG_ACTIVITY_REORDER_TO_FRONT标志作为额外标记).

问题:当我开始此活动时(从菜单中),活动没有显示,没有任何反应.但是:如果我删除半透明主题:一切正常,活动就会回到正面.

是的onNewIntent()被调用.

如果我按回半透明活动是下面的那个!但它需要成为顶级.

一个例子是

A(半透明活动)BC

堆栈:A

一个startActivity(B)

堆栈:A,B

B startActivity(C)

堆栈:A,B,C

c startActivity(A)//带有标志FLAG_ACTIVITY_REORDER_TO_FRONT

堆栈应为:B,C,A

但是A永远不会被带到前面,尽管它的onNewIntent()被调用.

有任何想法吗?

旁注


有趣的未回答的问题:http://groups.google.com/group/android-developers/browse_thread/thread/269c67f6b39cfe45?pli = 1


android:launchModesingleTasksingleInstance不希望被使用.这些更改了backstack并将活动移动到自己的堆栈中.因此我们不再有A,B,C了.

singleTask和singleInstance - 不适合大多数应用程序,因为它们会导致用户可能不熟悉的交互模型,并且与大多数其他应用程序非常不同.

http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

想要直观表示launchModes的任何人都可以尝试以下应用:https://play.google.com/store/apps/details? id = com.novoda.demos.activitylaunchmode

stack transparency android android-intent android-activity

17
推荐指数
1
解决办法
3355
查看次数

从应用程序调用默认主屏幕

我需要从我的应用程序调用我手机附带的默认主屏幕,这也是一个主屏幕应用程序.我试过搜索并找到了这个

    ArrayList<Intent> intentList = new ArrayList<Intent>();
    Intent intent=null;
    final PackageManager packageManager=getPackageManager();
    for(final ResolveInfo resolveInfo:packageManager.queryIntentActivities(new 
                  Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME), 
                                                        PackageManager.MATCH_DEFAULT_ONLY)) {
    intent=packageManager.getLaunchIntentForPackage(
                          resolveInfo.activityInfo.packageName);
    intentList.add(intent);
    }
Run Code Online (Sandbox Code Playgroud)

此代码适用于所有其他启动程序,但不适用于默认启动程序.我尝试在代码中使用断点,并发现在列表的0索引处应该有默认的启动器意图,但意图不保持该值.我需要某种许可吗谢谢

android package-managers android-intent

2
推荐指数
1
解决办法
4082
查看次数