小部件和应用程序:挂起打开简单的活动

时间:2014-11-02 19:36:47

标签: android android-activity android-appwidget

我一直在开发(黑客攻击)一个应用程序小部件,现在工作正常。我一直打算实现一个关联的应用程序,以便用户可以在运行应用程序或添加小部件(或两者)之间进行选择。

直到现在,我已经通过在主要的Activity的onCreate()方法中添加Toast,并在onCreate()的末尾添加了finish()来使应用程序边缘化,这样当我从Android Studio中运行我的项目时,在我的设备上,我看到的只是一个快速的Toast,没有出现讨厌的Activity视图。

现在我已准备好了解应用程序,所以我拿出Toast并删除了finish(),但我发现简单的“Hello World”TextView(在创建时将其作为占位符放在那里)该项目)不再显示,而是当我尝试运行它时应用程序就会挂起。

我几乎不知道为什么会这样,但怀疑它与相关的小部件相关。

我的onCreate()方法仍然非常简单:

 @Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_my);
 }

并且activity_my视图同样简单(仍然是股票“hello world”示例):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MyActivity">

    <TextView
        android:text="@string/hello_world"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>

知道我应该从哪里开始吗?

1 个答案:

答案 0 :(得分:1)

D'哦。希望我能够快速到达这里以避免浪费别人的时间,但我刚刚意识到我做了什么 else 以阻止主要活动的视图在开发小部件时显示......

我在主要活动部分的AndroidManifest中添加了以下行:

android:theme="@android:style/Theme.NoDisplay">

一旦我将其删除,事情就会恢复正常。

但也许这将有助于某人在未来和我一样愚蠢。令人烦恼的是,我甚至在代码中给自己写了一个注释,提醒我从Manifest文件中取出上面一行,当我最终查看应用程序方面时。哦,好吧。