0

メールがReceiverに正常に送信された後、SDカードからファイルを削除したい.これを行うには?私はSOとGoogleで多くのことを見つけました.私も試しました.私のコードは次のとおりです:

if(myFile.exists())
    myFile.delete();

上記のコードを使用して、受信側に送信する前にSDカードに保存されているファイルを削除します。この問題について誰か助けてください。事前に感謝します。

4

3 に答える 3

1

にメール送信ステータスが表示されるので、 ..onActivityResultでインテントを開始します。startActivityForResult

ここにサンプルコードがあります..

メールを送る:

int EMAIL = 101;

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/html");

emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[]{});
emailIntent.putExtra(android.content.Intent.EXTRA_BCC,new String[]{});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, pngUri);
startActivityForResult(emailIntent,EMAIL);

送信結果:

protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        // TODO Auto-generated method stub
        if(requestCode==EMAIL)
        {
            if(requestCode==EMAIL && resultCode==Activity.RESULT_OK)    
            {
                            if(myFile.exists())
                                myFile.delete();  
                Toast.makeText(mActivity, "Mail sent.", Toast.LENGTH_SHORT).show();
            }
            else if (requestCode==EMAIL && resultCode==Activity.RESULT_CANCELED)
            {
                Toast.makeText(mActivity, "Mail canceled.", Toast.LENGTH_SHORT).show();
            }
            else 
            {
                Toast.makeText(mActivity, "Please try again.", Toast.LENGTH_SHORT).show();
            }
        }   
    }
于 2012-12-14T04:27:27.237 に答える
0
  file.deleteOnExit();

アクティビティが終了すると、ファイルが削除されます。これをチェックして

または

Alarmmanager を使用して、1 時間または 30 分後に適切な時間後にファイルを削除するように設定しました。

于 2012-12-14T04:26:57.063 に答える
0

アクティビティのライフ サイクルに従ってメールボックスを開くと、現在のアクティビティが onPause() に移動すると、アクティビティに戻ると On Resume メソッドが呼び出されるので、on Resume メソッドにブロー コードを記述します。

保護されたボイド onResume() {

    File file= new File(filepath);
    if(file.exists())
    {
         file.delete();
    }
    super.onResume();
}

ここで filepath は、外部ストレージのパス、または削除するファイルを保存した場所です。

于 2013-08-12T07:33:53.503 に答える