【如何在RXJava Android中对后台线程执行长计算】教程文章相关的互联网学习教程文章

如何在我的Android应用程序中找出使用CPU的线程【代码】

如果我在我的开发设备上运行top我可以看到,当我的应用程序是它使用.6%cpu的背景时,如果我把它带到前台它使用5-6%的cpu.问题是,它没有做任何事情.没有服务正在运行,没有后台线程,只是等待用户点击按钮. 有没有办法在adt或通过其他工具找出哪个线程正在吃cpu所以我可以知道从哪里开始寻找问题?解决方法:是的,它甚至是免费的.它被称为DDMS,是Eclipse的ADT插件的一部分. 通过USB连接您的设备,启动您的应用程序,然后打开DDMS视图,您将...

java – 如何正确中断android中的线程【代码】

在我的应用程序中,我有一个按钮,当它被点击时,我开始一个新的线程并更改按钮的文本.如果我再次按下按钮,它将开始更快地更改其文本. 我想在第二次按下按钮时中断线程.这样做的正确方法是什么?public class TestActivity extends Activity {Button btn;int i = 0;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);btn = (Button)findViewById(R.id.bt...

java – 在不同的线程中调用Android服务的方法.它仍然在主线程上运行吗?【代码】

如果我理解正确,默认情况下,Android服务在主UI线程上运行.因此,对于任何非主线程操作,我发现人们建议在服务中启动一个单独的线程. 但是,我的问题是,如果在另一个线程中调用Service的方法,即AsyncTask或新的Thread(…).start();, Service的方法是否在调用线程中运行?或者它是否运行在主线程上,据说服务正在运行? 换一种说法,new Thread(new Runnable() {@Overrdepublic void run() {myAndroidService.doSomething();} }).start();...

android – Rxjava Realm从错误的线程访问【代码】

我正在从Realm读取/写入这个异常06-19 09:49:26.352 11404-11404/****** E/ContentValues: loadData: one rror Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created. java.lang.IllegalStateException: Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created.at io.realm.BaseRealm.checkIfValid(BaseRealm.java:385)at...

android – BlockingGet阻止UI线程RxJava 2【代码】

我正在处理这个问题. 我试图以同步方式调用RxJava,但这样做会导致阻塞主线程. 这是我的代码@Overridepublic Single<SettingsBundle> getSettings() {SettingsBundle settingsModel = mSettingsManager.getSettings();return Single.just(settingsModel).map(mSettingsMapper);}这是我的同步通话@Overridepublic SettingsBundle getSettingsSync() {return getSettings().blockingGet();}当调用getSettingsSync时,主线程被阻止,但是...

在RxJava上使用Android上的干净MVP:如何在仍然观察UI线程的同时保持演示者没有任何Android知识?【代码】

为了在android上使用mvp模式实现“干净”架构,建议将android框架视为插件,而不是将任何知识产权感知依赖项泄漏到presenter层.使用rxjava,如果我有一个设计用于将数据“推送”到视图层的演示者,我可能希望有这样的逻辑:public interface SearchPresenter {interface ViewLayer {void updateResults(List<SearchResult> searchResults)}void bind(ViewLayer viewLayer);void unbind(); }public class SearchPresenterImpl implement...

android – 在实现IdlingResource时,无法在未调用Looper.prepare()的线程内创建处理程序【代码】

我正在尝试编写Espresso单元测试,该测试依赖于使TCP / IP网络连接到外部应用程序以便成功通过的组件. 测试失败的原因是TCP / IP网络花费的时间比Espresso允许的时间长…… 因此,我们需要有TCP / IP代码类TCPConnectionTask实现IdlingResource: 但是,我得到了这个例外:java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() at android.os.Handler.<init>(Handler.java:200) at ...

java – 用于计时器的Android线程【代码】

public class MainActivity extends Activity { int min, sec; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); min = 5;sec = 0;final TextView timer1 = (TextView) findViewById(R.id.timer1);timer1.setText(min + ":" + sec);Thread t = new Thread() {public void run() {sec-=1;if (...

java – 如何在android中重启一个线程?【代码】

在我的Android应用程序中,我有一个ui-update-thread,可以使我的所有视图保持最新状态.protected Thread UIUpdateThread = new Thread() {@Overridepublic void run(){while(true){query_some_data_from_service(); // gets some "fresh" data from a serviceUIUpdateHandler.sendEmptyMessage(0); // will update all ui elements with the new valuessleep(1234);}} };我在onCreate()中启动此线程UIUpdateThread.start();当我离开...

java – Android领域不正确的线程【代码】

我有2个服务,其中一个是生产者(将对象保存到领域),以及其他从领域读取此对象并在计划任务中将它们发送到REST服务. 我的例外:java.lang.IllegalStateException: Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created. 服务1:this.scheduler.schedule("*/2 * * * *", new Runnable() {public void run() {List<Location> locations = dataStore.getAll(Location.class);for(L...

java – 必须从UI线程(Android Studio)调用方法getText()【代码】

我正在尝试为应用程序创建登录.但是我有一个问题. 这是我的代码:package com.forgetmenot.loginregister;import java.util.ArrayList; import java.util.List;import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject;import android.app.Activity; import android.content.Intent; import android.os...

java – Android在新线程中运行类中的函数【代码】

我有这个代码:MyClass tmp = new MyClass(); tmp.setParam1(1); tmp.SetParam2("Test"); tmp.setParam3("Test"); ...然后我有tmp.heavyCalc();在这个重度计算操作期间,我必须更新UI中的进度条并向用户显示它正在使用更新进度条和一些要显示的文本.现在它不起作用,因为我没有使用线程,app变得卡住和绞死,然后突然返回进度条是100%并且所有文本都突然出现. 所以我决定让我的函数作为新线程运行.在我的类的内部定义中,我添加了实现R...

java – UI线程或背景中的Android音乐播放器

我正在尝试创建简单的Android应用程序来播放SD卡中的音频文件.理解服务时遇到一些问题.我将具体,这是我的问题. >默认情况下,服务在UI线程上运行,不是吗?只有当它在单独的进程中运行时,它才有另一个线程,以及上下文,因为它是系统中的另一个进程(虚拟机实例的分支)> MediaPlayer类应该在哪里使用?在后台服务或UI线程中.对于在UI线程上运行的绑定服务,如果它在UI线程上运行,则创建服务绑定等没有任何意义吗?仅在我们想要在活动(或任...

java – Android(在Scala中):StackOverflowError取决于何时启动一个线程?【代码】

我有这个简单的Activity(在Scala中,导入ommited):class TestActivity extends Activity {private val TAG = "TestActivity"private val mHandler = new Handler {override def handleMessage(msg: Message) {Log.d(TAG, "handleMessage")}}private val mThread = new Thread {override def run {mHandler.sendEmptyMessage(0)Thread.sleep(10)run}}.startoverride def onCreate(savedInstanceState: Bundle) {super.onCreate(save...

java – ScheduledExecuterService.scheduleAtFixedRate创建多个线程池 – Android【代码】

我的Android应用程序中有一个名为UploadManager的AsyncTask,它检查已处理的项目,并将它们上传到服务器.为此,我使用ScheduledExecutorService.scheduleAtFixedRate每1分钟检查一次项目,并将它们上传到服务器.但是,有时会创建多个线程池(这种情况发生在10%的时间),因此有时会向服务器发送两次相同的请求,尽管这种并发性在服务器和服务器上都得到了处理.客户端级别,但我仍然不希望这种情况发生在客户端.下面是代码的样子.在MainActiv...