活动 A 启动某些数据的活动 B。B设置数据立即完成。这使 B 活动闪烁一次。有什么方法可以防止闪光吗?
文本到语音.java
Intent intent = new Intent(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
intent.setPackage(engine);
startActivityForResult(intent, VOICE_DATA_INTEGRITY_CHECK);
引擎活动获取请求代码,设置数据并完成。这使得引擎活动显示 -> setdata ->完成。看起来像是活动的东西闪了一下。有什么办法可以防止这种情况吗?谢谢。
如果要执行的操作不必对用户界面执行任何操作,则可以使用"服务/内容-提供"而不是"活动"。
喜欢:
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
public class BackgroundService extends Service {
private final IBinder mBinder = new LocalBinder();
public class LocalBinder extends Binder {
BackgroundService getService() {
return BackgroundService.this;
}
}
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
}
从活动 A 调用服务:
startService(new Intent(A.this,BackgroundService.class));
public void onCreate() {
// startActivityForResult(intent, VOICE_DATA_INTEGRITY_CHECK);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Activity activity = getActivity();
if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
startActivityForResult(intent, VOICE_DATA_INTEGRITY_CHECK);
}
}
}, 500);
}
我使用延迟来启动ActivityForResult,而不是直接调用它,否则它将显示一个空片段并立即闪出。