当前位置: 首页 > 知识库问答 >
问题:

显示吐司的Android服务

齐甫
2023-03-14
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent i= new Intent(this, BackgroundMusic.class);
    this.startService(i); 

}



}
public class BackgroundMusic extends IntentService {

 public BackgroundMusic() {
      super("BackgroundMusic");
  }



 @Override
  protected void onHandleIntent(Intent intent) {
      // Normally we would do some work here, like download a file.
      // For our sample, we just sleep for 5 seconds.
     Context context = getApplicationContext();
     CharSequence text = "Hello toast!";
     int duration = Toast.LENGTH_SHORT;

     Toast toast = Toast.makeText(context, text, duration);
     toast.show();
 }



}

舱单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.starwars"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:debuggable="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
     <service android:name=".BackgroundMusic" />
    <activity
        android:name="com.example.starwars.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:label="@string/app_name" android:name="BackgroundMusic"/>
</application>

</manifest>

共有1个答案

冯元徽
2023-03-14

请参阅这部分文档

(IntentService有几个限制:

它不能与您的用户界面直接交互。要将其结果放在UI中,您必须将它们发送到一个活动。

 类似资料:
  • 问题内容: 我试图显示一条带有整数的吐司消息这就是我试图做到的方式: 但这会使我的应用程序崩溃。感谢帮助! 问题答案: 将a 或an 作为其第二个参数。 但是,表示 资源ID (例如)。 应用程序崩溃可能是因为没有找到具有该ID的资源,因为它不是以ID开头的ID,而是任意整数。 在您的情况下,请使用。

  • 我试过: 在中。出于某种原因,cancel方法永远不起作用。 如果我在显示应用程序之前放入...然后会有另一个空检查。但在这样做之后,它也不起作用。我可以显示对话框而不是祝酒词,但这不是一个解决方案。

  • 我如何让这段代码永远在后台运行,并始终检测是否有互联网接入(不是互联网连接),并在没有互联网接入时显示一个祝酒词? 这是我想要的(见喵喵的回答),但它是用于检测互联网的

  • 我正在从我的Android测试应用程序运行一个服务,它需要显示在一个服务中不断增加的toast from计数器值。 它的开始很好,展示了祝酒词。但是,一旦我按下Back/Home键使应用程序保持在后台,烤面包片就会停止显示。当我再次将应用程序放到前台时,烤面包片又开始可见了。 这个问题发生在Kitkat。但在果冻和豆子下面,它的工作很好。 那么,如何让toast始终可见,甚至app在后台,服务在运