Ter*_*nce 3 java android system-clock android-fragments
我创建了一个包含大量片段的应用程序。在我的最后一个片段中,我尝试LogCat在 10 秒后打印一些内容。但它对我不起作用。
这是我的Fragment课
public class StepTwentyTwoFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.step22_fragment, container, false);
testMethod();
return v;
}
public static StepTwentyTwoFragment newInstance() {
StepTwentyTwoFragment f = new StepTwentyTwoFragment();
Bundle b = new Bundle();
f.setArguments(b);
return f;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser) {
Activity a = getActivity();
if(a != null) a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
public void testMethod(){
SystemClock.sleep(10000);
Log.d("PPP : ","456");
}
}
Run Code Online (Sandbox Code Playgroud)
实际上我想在最后一个片段启动后 10 秒后打印这个“PPP”。但是随着应用程序中一些片段的加载,它开始打印。
对此有任何想法吗?
谢谢你。
你不应该睡觉,也不应该在不需要它们时创建线程。Android 的主线程是基于事件循环的,您可以安排事件/代码在将来的某个时间点执行。
您最简单的选择是使用
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.step22_fragment, container, false);
Runnable delayedTask = new Runnable() {
@Override
public void run() {
Log.d("PPP : ","456");
}
};
v.postDelayed(delayedTask, 10000);
return v;
}
Run Code Online (Sandbox Code Playgroud)
如果您没有,也View可以创建自己的处理程序。
private static final Handler mainThreadHandler = new Handler(Looper.getMainLooper());
public void testMethod(){
Runnable delayedTask = new Runnable() {
@Override
public void run() {
Log.d("PPP : ","456");
}
};
mainThreadHandler.postDelayed(delayedTask, 10000);
}
Run Code Online (Sandbox Code Playgroud)
使用 Handler.postDelayed 方法来实现这一点。
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Do something after 10000ms
}
}, 10000);
Run Code Online (Sandbox Code Playgroud)
将要执行的代码放在 run() 方法中。从此处阅读有关处理程序的更多信息
| 归档时间: |
|
| 查看次数: |
7225 次 |
| 最近记录: |