-2

我按照这个stackoverflow链接自动刷新每5秒刷新一次活动的活动我想只在创建时刷新一次活动而不是每5秒我要做什么?

public void onCreate(Bundle savedInstanceState)  
{
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  this.mHandler = new Handler();

  this.mHandler.postDelayed(m_Runnable,5000);

}//onCreate

private final Runnable m_Runnable = new Runnable()
{
  public void run()
  {
    Toast.makeText(refresh.this,"in runnable",Toast.LENGTH_SHORT).show();

    refresh.this.mHandler.postDelayed(m_Runnable, 5000);            
  }

};//runnable
4

1 回答 1

0

既然你在评论中描述了你的实际问题,我会在这里回答这个问题。

您不应该每 5 秒刷新一次应用。您应该对意图结果做出反应。

解决方案 1(ActivityForResult 方法)

这就是你的做法:

private static final int SELECT_PHOTO = 100;

开始意图

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, SELECT_PHOTO); 

这部分在结果上调用。你应该用这种方法刷新你的活动。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

    switch(requestCode) { 
    case SELECT_PHOTO:
        if(resultCode == RESULT_OK){  
            Uri selectedImage = imageReturnedIntent.getData();
            InputStream imageStream = getContentResolver().openInputStream(selectedImage);
            Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream);
        }
    }
}

编辑:说清楚:会发生什么,你创建了你的活动。呼唤你的意图。您的活动正在暂停onPause(),并在采摘后恢复onResume()。因此,如果您想在活动暂停后刷新活动。onResume()您在方法中编写此行为。但是,如果您要为某些结果启动 Intent。您将使用上述方法将结果添加到您的活动中。

解决方案 2(一般方法)

@Override
protected void onResume() {
    super.onResume();
    //Refresh here
}
于 2013-04-26T11:12:59.723 回答