2021-06-01:K个逆序对数组。给出两个整数 n 和 k,找出所有包含从 1 到 n 的数字,且恰好拥有 k 个逆序对的不同的数组的个数。逆序对的定义如下:对于数组的第i个和第 j个元素,如果满i < j且 a[i] > a[j],则其为一个逆序对;否则不是。由于答案可能很大,只需要返回 答案 mod (10的9次方 + 7 )的值。
我找到了一个非常简单的答案:isAdded()
:
true
如果该片段当前被添加到其活动中。
@Override
protected void onPostExecute(Void result){
if(isAdded()){
getResources().getString(R.string.app_name);
}
}
避免onPostExecute
被调用时,Fragment
没有附加到Activity
是取消AsyncTask
当暂停或停止Fragment
.然后isAdded()
不再有必要了。
如果你扩展Application
初始化并维护一个静态的“global”上下文对象,如下所示,然后你可以使用它而不是该活动来加载字符串资源。
public class MyApplication extends Application {
public static Context GLOBAL_APP_CONTEXT;
@Override
public void onCreate() {
super.onCreate();
GLOBAL_APP_CONTEXT = this;
}
}
如果你用这个,你就能逃脱Toast
和资源加载而不用担心生命周期。