片段中每秒执行一次方法-第二次运行时为空值

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 上运行时为零

React/Redux 状态在第二次操作调用时为空

在使用 FirebaseRecyclerPagingAdapter 时,第二次单击 RecyclerView 中的项目时,片段显示为空

Facebook 访问令牌在第二次尝试使用 ParseFacebookUtils 登录 Facebook 时为空

Xcode 4.6.2 应用程序在每秒运行一次时崩溃

Xcode 4.6.2 应用程序在每秒运行一次时崩溃