每个活动都必须有布局吗?

时间:2013-06-27 14:37:06

标签: android android-layout android-activity

我刚刚开始使用Android并正在阅读BroadcastReceiver。由于MainActivity仅用于以秒为单位获取闹钟时间,因此我想到布局XML文件是否必须适用于Android中的每个活动。我的意思是,有没有可能有一个应用程序,在启动时,显示没有视图,但成功设置接收器?

3 个答案:

答案 0 :(得分:37)

答案是肯定的。活动不必具有UI。它在文档中提到,例如:

  

活动是用户可以做的一件重点事。几乎   所有活动都与用户互动[...]

(见http://developer.android.com/reference/android/app/Activity.html

相关问题:https://stackoverflow.com/a/12817384/534471

例如从没有布局的活动中显示Toast,您将在清单中定义活动,如下所示:

<activity
    android:name=".MainActivity"
    android:theme="@android:style/Theme.NoDisplay">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

代码如下所示:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Toast.makeText(this, "I'm alive", Toast.LENGTH_LONG).show();
        finish();
    }
}

答案 1 :(得分:9)

您可以在没有UI的情况下实现活动。在清单中,您可以指定android:theme="@android:style/Theme.NoDisplay"。看看this

您还可以实现没有任何UI的服务,因此您不需要布局通胀。服务只在后台运行,不显示任何视图。 请查看Android TrainingAPI Guide,详细了解服务

答案 2 :(得分:3)

我认为您需要了解有关Android中what is context的更多信息。 BroadcastReceiver与Activity不同,不需要布局通胀。