我的代码中有一个变量,说它是"状态".
我想根据此变量值在应用程序中显示一些文本.这必须在特定的时间延迟下完成.
就像是,
检查状态变量值
显示一些文字
等待10秒钟
检查状态变量值
显示一些文字
等待15秒
等等.时间延迟可能会有所不同,一旦显示文本就会设置.
我试过Thread.sleep(time delay)但失败了.有没有更好的方法来完成这项工作?
我是Android开发的新手,现在我的启动器活动只显示5秒,之后我想检查用户是否已登录或未执行操作并执行操作.
这是我的代码.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
exactPreferences = getSharedPreferences("ExactPreference",MODE_PRIVATE);
setContentView(R.layout.activity_landing_page);
session = exactPreferences.getString(Model.getSingleton().SHARED_SESSION_ID,null);
Log.i("Session Id",session);
displayData(); // I want to perform this function after 5 seconds.
}
private void displayData() {
if(session.equals("")){
Intent loginIntent = new Intent(LandingPage.this,
LoginActivity.class);
startActivity(loginIntent);
Log.i("User Logged In", "False");
}
else
{
Intent objIntent = new Intent(LandingPage.this,
IndexPageActivity.class);
startActivity(objIntent);
Log.i("User Logged In", "True");
}
}
Run Code Online (Sandbox Code Playgroud) 我需要让我的RSS Feed阅读器每隔10分钟检查一次新帖子,然后在有新帖子的情况下解析它们.我还需要每分钟都更新UI.
我从不同的来源阅读和听到了不同的东西.我目前的理解是我可以ScheduledThreadPoolExecutor用来制作两个预定的线程,其中一个需要Handler更新UI.我不确定这些类或者最有效的使用方法TimerTask.
我也很不确定在哪里制作这些的子类.一位朋友建议TimerTask在FeedParser课堂上扩展为内部课程以使其更简单.但是,要以这种方式实现它,我必须使用该run()方法TimerTask而不重写它,这意味着我不能简单地使用我需要的参数来运行需要的函数.
简而言之,为此安排任务的最佳方法是什么,我将在哪里实现这些?
android handler threadpool timertask scheduledexecutorservice
我想制作一个应用程序,例如每隔10秒调用一个函数.
我写了这样的代码:
Handler ha=new Handler();
ha.postDelayed(new Runnable() {
@Override
public void run() {
//call function
}
}, 10000);
Run Code Online (Sandbox Code Playgroud)
但是编译完这段代码后,我的函数在10秒内调用了一次.
我该如何解决?
我有一个Android服务正在运行,但我想每X小时执行一次特定的服务方法来更新数据.在不浪费android资源的情况下,最好的方法是什么?
我有一个粘性的后台服务,必须一直运行.基本上它跟踪时间,它是一个自定义时钟计时器.但是一旦设备进入空闲状态(当电话屏幕关闭时),定时器(后台服务)也会暂停.
即使屏幕关闭,我该怎么做才能使它始终保持运行?
public class TimerService extends Service {
private Context context;
@Override
public IBinder onBind(Intent intent) {
Logger.LogI(TAG, "Service binding");
return null;
}
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return Service.START_STICKY;
}
}
Run Code Online (Sandbox Code Playgroud)