gpt4 book ai didi

java - Android-如何将数据从 Activity 发送到服务?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:41 28 4
gpt4 key购买 nike

在我的应用程序中,我试图将数据从我的 MainActivity.class 发送到名为 bgservice.class 的服务。这是我的以下代码:

MainActivity.class:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent serviceIntent = new Intent(bgservice.class.getName());
serviceIntent.putExtra("UserID", "123456");
this.startService(serviceIntent);
}

bgservice.class:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {

String userID = intent.getStringExtra("userID");
System.out.println(userID);
Toast.makeText(this,userID, Toast.LENGTH_LONG).show();
return START_STICKY;

}

但我没有在服务类中获取数据。这些是我得到的以下错误:

02-25 09:05:41.166: E/AndroidRuntime(2633):

java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.microapple.googleplace/com.microapple.googleplace. MainActivity}: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.microapple.googleplace.bgservice (has extras) }

AndroidManifest.xml:

     ...
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

<activity
android:name=".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>
<service android:enabled="true" android:name=".bgservice" />
</application>
....

最佳答案

Intent serviceIntent = new Intent(YourActivity.this, bgservice.class);
serviceIntent.putExtra("UserID", "123456");
this.startService(serviceIntent);

在您的服务中,

public int onStartCommand(Intent intent, int flags, int startId) {

String userID = intent.getStringExtra("UserID");

//do something

return START_STICKY;

}

这一定有效。

关于java - Android-如何将数据从 Activity 发送到服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28710833/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com