我想要一個片段,要求用戶在關閉應用程序時對其評分。該片段工作正常,但可能會煩人,特別是如果它出現在用戶關閉應用程序的前幾次。我希望他們在出現之前使用該應用程序,說5次。這怎麼可以用全球持有人來完成?如何限制不斷顯示的「評價此應用程序」片段
回答
這是我想出的解決方案。我敢肯定,每個人都會告訴我使用全局變量並不是最好的方法。但這對我有效。在我的主要活動,我把以下代碼:
@Override
public void onBackPressed() {
int theCount = globalHolder.getCounter();
globalHolder.setCounter(theCount++);
if (globalHolder.getStop() == 1) {
finish();
} else if (theCount == 5 || theCount == 10 || theCount == 25) {
globalHolder.setCounter(theCount++);
final DialogFragment rate = new RateMe();
rate.show(getSupportFragmentManager(), "Rate");
} else {
globalHolder.setCounter(theCount++);
finish();
}
}
現在,讓我解釋一下。第一個全球是一個計數器。我添加了這個,因爲我想跟蹤用戶使用應用程序的次數。你會在一分鐘內看到爲什麼。計數器初始化爲0.因此,由於用戶第一次訪問該程序,我會增加計數器。
下一行代碼被放入,這樣我就不會惹惱那些不想評價應用或者已經同意評價應用的用戶。這是你所能做的。你不能分辨他們是否真的給應用評分,但你可以確定他們是否按下了按鈕。所以我不得不假設,因爲他們按下了「是」按鈕,他們實際上評價了應用程序。現在我想停止顯示片段。所以我建立了另一個叫做......停止的全局。我把這個全局設置爲「0」(對於「否」)。是的,我用了一個int。那是我的選擇。你可以使用你想要的。所以當全局變爲「1」時,它會增加計數器,然後關閉程序。
'else if'是我設定我想要顯示片段時的限制。它設置爲僅在用戶第5次,第10次和第25次使用應用程序時顯示片段。如果他們沒有在第25次使用時對應用程序進行評分,他們很可能不會。從這一點開始,計數器再次遞增(您將會看到爲什麼會在後面出現),並且片段顯示在上面的計數中。
下一個'else'遞增計數器並關閉程序。
的片段是:
public class RateMe extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setCancelable(false);
builder.setTitle("Rate Me");
builder.setMessage(R.string.Rate);
builder.setPositiveButton("Yes, I Will", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
((MainActivity)getActivity()).globalHolder.setStop(1);
Uri uri = Uri.parse("market://details?id=wolfEnterprisesLLC.motg&hl=en");
Intent myAppLinkToMarket = new Intent(Intent.ACTION_VIEW, uri);
myAppLinkToMarket.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY |
Intent.FLAG_ACTIVITY_NEW_DOCUMENT |
Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
try {
startActivity(myAppLinkToMarket);
} catch (ActivityNotFoundException e) {
Toast.makeText(getContext(), " unable to find market app", Toast.LENGTH_LONG).show();
}
}
});
builder.setNeutralButton("Please Do Not Ask Again", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
((MainActivity)getActivity()).globalHolder.setStop(1);
getActivity().finish();
}
});
builder.setNegativeButton("Not Now", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
getActivity().finish();
}
});
return builder.create();
}
}
正面單擊全局命名爲 「停止」 設置爲 「1」。從這一點開始,用戶將被髮送到Play商店來爲應用評分。
如果用戶不想再次詢問,可以推送的「中性」按鈕也將全局「停止」設置爲「1」。程序從這裏關閉。將全局設置爲「1」,再次阻止片段在未來出現。
負號按鈕,即「不是現在」,關閉程序。回顧主要活動記得櫃檯?這就是爲什麼我要櫃檯繼續。因此,如果按下否定按鈕,它仍然會保持計數狀態,並在第10次和第25次再次詢問時根據需要對應用程序進行評分。
最後在我的應用程序類我說:
int stop;
int counter;
public int getStop() {
return stop;
}
public void setStop(int stop) {
this.stop = stop;
}
public int getCounter() {
return counter;
}
public void setCounter(int counter) {
this.counter = counter;
}
所以我幫這可以幫助別人。
:)
- 1. 評價此應用程式funtionlity
- 2. Django照片應用程序不顯示
- 3. 使用教程創建Android應用程序不顯示片段佈局字段
- 4. 我如何評價限制git-svn?
- 5. 如何限制Android應用程序不顯示在設備的主菜單中?
- 6. 如何在iOS的Air應用程序中創建'評價此應用程序'按鈕
- 7. 如何在我的firefox os應用程序中添加「評價此應用程序」按鈕?
- 8. 如何使控制檯應用程序顯示「不響應」?
- 9. 評價應用程序內的應用程序 - Android
- 10. 我如何限制在評論框中顯示評論
- 11. 如何評價來自遠程主機的限制mysqldump?
- 12. 如何阻止此應用程序顯示爲未響應?
- 13. 如何指導用戶評價我的應用程序?
- 14. 應用程序恢復後沒有顯示標題的片段?
- 15. Django評論應用程序的自定義模板不顯示字段
- 16. GoogleMap片段在返回到主顯示片段時崩潰了應用程序
- 17. Magento的審查和評價 - 不顯示
- 18. 當用戶點擊退出時(退出應用程序之前)顯示「評價我的應用程序」警報
- 19. 如何評價我的應用程序在OnBackPresssed梅索德
- 20. 片段不顯示
- 21. 片段不顯示
- 22. 片段不顯示
- 23. 有沒有辦法限制UIDocumentInteractionController中顯示的應用程序?
- 24. 在應用程序中顯示PDF片段android
- 25. 當試圖顯示一些片段時,應用程序崩潰
- 26. 如何限制C#應用程序
- 27. 如何限制node.js應用程序?
- 28. 如何運行應用程序並不顯示控制檯?
- 29. 如何在iPad應用程序中顯示此內容?
- 30. 如何限制Android應用程序只運行一段時間?