私のMainActivity XMLファイルでは、私はEditTextのidがeditsearchです。私はクリップボードのテキストを聞いて、私のアプリを開くためのサービスクラスを持っています。すべてがうまくいっていますが、私のアプリがサービスクラスから開いたときに私の編集検索にテキストを設定することはできません。サービスからアプリケーションを開くことができませんEditTextにテキストを設定することができません
findViewById
私のサービスのonStartCommand
メソッドでは機能しません。私はまた私のMainActivityクラスの静的プロパティとして私の期待どおりの結果を得ることができない私のeditsearch EditTextを定義しようとしました。ここで
は
package com.learn24bd.ad;
import android.app.Service;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.util.Log;
public class MyServiceReceiver extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("MySerivce","Service Started");
final ClipboardManager clipboard = (ClipboardManager) this.getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() {
public void onPrimaryClipChanged() {
String copiedText = clipboard.getText().toString();
Log.i("Copied",copiedText);
/* here i want to setText to my editsearch
also tried with static property
MainActivity.editsearch.setText(copiedText);
*/
Intent i = new Intent();
i.setClass(getApplicationContext(), MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
}
});
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
をフィードバックや編集テキストのようなUIコンポーネントをサービスで処理することはできません – BMacedo
あなたのフィードバックに感謝します。問題を解決する方法は何ですか? –
これを実装するサービスが本当に必要かどうか、またはedittextが存在するアクティビティにあるべきかどうかを検討する必要があります。後者がそうである可能性が非常に高い。 – BMacedo