- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我开始研究这个:Android SplashScreen我的应用程序与此方法完美配合。不幸的是,我已经开发了一个自定义启动画面(不是像其他帖子中那样的进度对话框)并且我无法使用相同的方法。我的闪屏是一个不同的 Activity ,我开始从 onCreate 作为不同的线程调用它。
而不是 this.pd = ProgressDialog.show(this, "Working..", "Downloading Data...", true, false);
在 onCreate 我做的:
Thread splashThread = new Thread() {
@Override
public void run() {
// start the splash screen activity
}
};
splashThread.start();
}
启动画面 Activity 正确启动。因此,我在默认方法(doInBackground、onPostExecute)中调用 AsyncTask,并且在所有变量都加载到 doInBackground 中之后,我无法结束运行启动画面的 Activity 并返回到主要 Activity 。
有什么建议吗?
最佳答案
好吧,我终于感谢 JPM 提出的使用处理程序的建议,我解决了这个问题:
public class SplashScreen extends Activity {
private static Handler mHandler ;
private static Handler mainHandler ;
protected static final int CLOSE_SPLASH = 0 ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
mHandler = new Handler(){
@Override
public void handleMessage(Message msg){
switch(msg.what){
case CLOSE_SPLASH:
finish();
break;
}
}
};
}
@Override
public void onStart(){
super.onStart();
if(mainHandler != null){
mainHandler.sendEmptyMessage(MainActivity.START_LOAD);
}
}
@Override
public boolean onKeyDown (int keyCode, KeyEvent event){
if(keyCode == KeyEvent.KEYCODE_BACK){
mainHandler.sendEmptyMessage(MainActivity.ABORT_LOAD);
}
return super.onKeyDown(keyCode, event) ;
}
public static void setMainHandler(Handler h){
mainHandler = h ;
}
public static void sendMessage(Message msg){
mHandler.sendMessage(msg);
}
public static void sendMessage(int w){
mHandler.sendEmptyMessage(w);
}
}
在 MainActivity 中,我来回管理处理程序:
public class MainActivity extends Activity {
private MainActivity _this;
private Handler mHandler;
protected static final int FINISH_LOAD = 0 ;
protected static final int START_LOAD = 1 ;
protected static final int ABORT_LOAD = 2 ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
_this = this;
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case FINISH_LOAD:
SplashScreen.sendMessage(SplashScreen.CLOSE_SPLASH);
break;
case START_LOAD:
initializing();
break;
case ABORT_LOAD:
finish();
}
}
};
startSplash();
}
private void startSplash() {
Intent intent = new Intent(this, SplashScreen.class);
SplashScreen.setMainHandler(mHandler);
startActivity(intent);
}
private void initializing() {
new Thread() {
@Override
public void run() {
long start_time = android.os.SystemClock.uptimeMillis();
doTheHeavyJob();
long duration = android.os.SystemClock.uptimeMillis() - start_time;
if (duration <=3000) {
try {
wait(3000-duration);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
mHandler.sendEmptyMessage(FINISH_LOAD);
}
}.start();
}
}
通过这种方式,我可以管理 doTheHeavyJob() 函数并在两种情况下完成 SplashScreen:在作业完成后,至少在 3000 毫秒后,即显示我的启动画面的最短持续时间。我还想在 anddev 意大利网站上对 Teskio 进行测试,因为这里完成了大部分工作。
关于android - 自定义启动画面以在 Android 中加载变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7321665/
我有一个表,用于测量数据集中两个不同值的分布百分比(我有一个计数,替换为 Percentage )。我只想在仪表板中发布 85% 的值。这样做的步骤是什么? .现在,如果我过滤掉 NO 值, YES
我想平均N通过Type对于 Inst 的值 我的数据设置为: Type, Inst, N A, A1, 4 A, A1, 13 A, A1, 13 A, A2, 4 A, A3, 5 B, B1, 4
当我使用 Node 的 http2 库(仅支持 HTTPS,不支持 HTTP)进行开发时,当我在 Chrome 中打开 localhost 时,我会看到一个警告屏幕: Your connection
我想创建一个具有响应式布局的导航栏菜单。当网站显示在显示器上时,我想播放导航栏。当网站在手机上显示时,我会显示最终显示导航栏的菜单图标。 我该怎么做? 最佳答案 试试这个,在移动设备上,导航栏不仅会显
我聘请了一名程序员为我创建一个 iPhone 应用程序。该应用程序的目的是拍照并将其上传到服务器。我们想制作一个特殊用途的屏幕,以便在上传照片之前查看照片。这个专门开发的屏幕将具有至关重要的缩放功能。
我在 Tableau 上有一个我无法解决的简单问题。 我想显示一个图表,显示随时间变化的度量。我想将用户通过参数选择的一个客户端与未选择的所有其他客户端进行比较。该图将显示具有 2 种不同颜色的两条线
我使用 Python 脚本从 3 个不同的 RDS 执行一系列复杂查询,然后将数据导出到一个 CSV 文件中。我现在正在尝试找到一种方法,每周将使用这些数据的仪表板自动发布到 Tableau 服务器中
我在工作中使用 tableau 来处理各种数据类型,包括敏感的个人数据,这些数据只能以聚合格式共享。我试图找到一种方法来保护私有(private)信息,方法是在单元格值小于 5 时隐藏它。这样,当用户
我最近开始在网站上嵌入 Tableau 可视化效果,并遇到了在浏览器中直接使用 Control + P 打印它们的问题。大多数完全扭曲,如果有的话。我做了一些挖掘,发现这是一个已知问题: http:/
例如,此 URL 包含十几个项目:https://tableautest.domain.uk/t/CustomerSharing/view/projects 在每个项目中都有几个工作簿。每个工作簿中都
我正在研究如何使用 Tableau 连接到 Cloudera Hadoop。我提供服务器和端口详细信息并使用“Impala”进行连接。我能够成功连接,选择默认模式并选择所需的表。 在此之后,当我将维度
我正在尝试将 Tableau 工作表嵌入到我的 ReactJS 应用程序中。我有一个包含报告名称列表的菜单(在 react 中),当单击菜单项时,它会更新包含报告名称的状态。我决定使用 tableau
我有以下问题!我有一个这样的表: Data Source 我想创建一个可以获取 apl_id 的字段(我想这是一个字段),有一些我想要的 service_offered。 上表中的示例。如果我想要只有
我有一个航类延误数据电子表格,我正在处理一个显示每个机场总延误时间的工作表。我想过滤维度“机场”,即根据每个机场的起飞次数创建机场类别,“小型”、“中型”和“大型”,这是通过计算维度“航类号”计算得出
我想创建一个带有过滤器的表格,用于选择和比较事物: 假设我有一个变量 Var,包含值 A、B、C、D、E。我想要一个过滤器,以便用户可以选择 A B C D 之一,同时 E 始终被选中。这样选中的E和
我是一名优秀的程序员,十分优秀!