android – 通过TimerTask“Toast”一条消息

我找到了一些关于如何从子类访问上下文的信息以及一些有关的信息

runOnUiThread(new Runnable() {
  public void run() {
    // Do something
  }
});

但就我而言,它不起作用.应用程序仍在运行,但活动可能已被破坏.第一个(主要)活动是创建TimerTask的父活动.我的代码:

TimerTask tt = new TimerTask() {
  @Override
  public void run() {
    // do something (cut)

    // and at the end show info
    getParent().runOnUiThread(new Runnable() {
      @Override
      public void run() {
        Toast.makeText(getParent(),
                  getResources().getString(R.string.st_toast_msg_stopped),
                  Toast.LENGTH_LONG).show();
      }
    });
  }
};
curTimer.schedule(tt, millisecondsUntilStop);

日志中没有错误/异常.但是没有显示烘烤的消息. 🙁

现在我不知道我能做什么/尝试.我希望你们中的某些人可以帮助我.

P.S.:也许我使用错误的背景?但我还尝试了其他一些上下文,比如当前活动的Context,ApplicationContext,….

最佳答案 那么你在这里使用的是错误的上下文,即getParent().而不是使用getParent()尝试使用current_Activity.this这样,

TimerTask tt = new TimerTask() {
  @Override
  public void run() {
    // do something (cut)

    // and at the end show info
    Activity_name.this.runOnUiThread(new Runnable() {
      @Override
      public void run() {
        Toast.makeText(Activity_name.this,
                  getResources().getString(R.string.st_toast_msg_stopped),
                  Toast.LENGTH_LONG).show();
      }
    });
  }
};
点赞