片段中每秒执行一次方法-第二次运行时为空值
Posted
技术标签:
【中文标题】片段中每秒执行一次方法-第二次运行时为空值【英文标题】:Executing method every second in Fragment - NULL Value on second run 【发布时间】:2017-08-10 23:04:24 【问题描述】:我们从 someID 的 onCreate 方法中获取值。当 onCreateView 方法第一次运行时,一切都很好。但是,在第二次运行时(在 1000 间隔之后),someID 值为 NULL。我们如何确保这个 someID 值是粘性的?请记住,该线程存在于 Fragment 中
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
someID = getArguments().getString(SOME_ID_KEY);
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
View v = inflater.inflate(R.layout.fragment_game, container, false);
Toast.makeText(getActivity(), someID, Toast.LENGTH_SHORT).show();
handler.postDelayed(new Runnable()
@Override
public void run()
System.out.print(someID); // works on 1st time but not any other future runs of the 1k interval
handler.postDelayed(this, 1000);
, 1000);
【问题讨论】:
【参考方案1】:你可以这样做
private void printId()
handler.postDelayed(new Runnable()
@Override
public void run()
System.out.print(someID); // works on 1st time but not any other future runs of the 1k interval
printId();
, 1000);
并在您的 onCreateView 中将所有处理程序代码替换为:
pirntId();
【讨论】:
以上是关于片段中每秒执行一次方法-第二次运行时为空值的主要内容,如果未能解决你的问题,请参考以下文章
核心图像过滤器的输出图像第二次在 UIImage 上运行时为零
在使用 FirebaseRecyclerPagingAdapter 时,第二次单击 RecyclerView 中的项目时,片段显示为空