我试过在教程的setFlags中使用这个Flag,但是不推荐使用它,我该怎么做

时间:2015-10-16 20:28:25

标签: android android-intent android-developer-api

FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET已被弃用;那我该怎么用?

private Intent createShareForecastIntent() {

    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
    shareIntent.setType("text/plain");
    shareIntent.putExtra(Intent.EXTRA_TEXT, mforecastStr + FORECAST_SHARE_HASHTAG);
    return shareIntent;


}

2 个答案:

答案 0 :(得分:5)

引用the documentation

  

从API 21开始,这与FLAG_ACTIVITY_NEW_DOCUMENT相同,应该使用FLAG_ACTIVITY_NEW_DOCUMENT来代替此。

由于两个符号具有相同的数值(compileSdkVersion),因此在运行时行为方面使用哪个符号并不重要。如果FLAG_ACTIVITY_NEW_DOCUMENT为21或更高,请切换为CDC MemDC; MemDC.CreateCompatibleDC(&dc); CBitmap Bmp; Bmp.CreateCompatibleBitmap(&dc,ClientRect.Width(),ClientRect.Height()); MemDC.SelectObject(&Bmp); MemDC.BitBlt(0,0,ClientRect.Width(),ClientRect.Height(),&dc,0,0,SRCCOPY); CImage TempImageObj; TempImageObj.Attach((HBITMAP)Bmp.Detach()); TempImageObj.Save(sFilePath);

答案 1 :(得分:1)

见这里(Intent

        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
        }