小编Rai*_*gex的帖子

用于创建活动的意图是否存在?

关于这个问题的更多内容.

我想知道如果我没有杀死它,我在创建一个Activity的意图中传递的数据是否会保留.

示例:活动A使用额外数据String(SomeStringValue)调用活动B. 然后活动B调用调用D的C.现在在某个时间活动B被销毁(例如为了节省内存),当我回到活动B时需要重新创建它(例如再次调用onCreate)但是因为我使用了后退按钮而不是传递意图我的先前意图仍然存在,我可以得到我需要的数据或将数据消失.

我试图自己测试但是我无法在不杀死整个应用程序的情况下再次调用.

android android-intent oncreate android-activity

5
推荐指数
1
解决办法
1245
查看次数

Play商店多久更新一次其缓存

我想知道Play商店多久更新一次其缓存。问题是我将实施托管购买(一旦购买,您就不会再购买)。事情是我一直在阅读,很多人说Play商店并不经常更新其缓存。该方案。用户在电话上进行购买,然后转到平板电脑,但他在平板电脑上没有该商品,并且查询该平板电脑不会显示该商品已被购买。如何在不要求用户再次购买商品的情况下强制更新Google Play商店缓存(通常会更新Play商店缓存,因为回来时该商品已经购买)。

因此,Google Play商店还会多久更新一次本地缓存,如果只是在设备启动和购买请求时更新,则还有另一种方法可以强制更新缓存。

android in-app-purchase google-play-services

5
推荐指数
1
解决办法
2038
查看次数

是否可以更新用于创建活动的意图?

是否可以修改用于从活动本身内部创建活动的意图。

简单描述 是否可以更新返回的意图

getIntent()
Run Code Online (Sandbox Code Playgroud)

使用新值,并让它在重新创建活动时使用这些新值,因为系统因资源而终止活动或方向更改,或者在使用开发人员选项时选择不保留活动选项(这会强制每次重新创建活动)你离开它然后再回来的时间)。

我想要实现的目标

我正在尝试实现一种在活动之间传递变量(并更新它们)的方法,而无需使用数据库或 SharedPreferences。我希望数据仅在应用程序运行时才有效,但也可以通过 Android 系统首选项轻松重新创建。这只是我的一个想法,尝试一些新的东西。我不知道我的解释会如此难以理解。对于那个很抱歉。

复杂描述

场景:

从 MainActivity 我使用以下代码创建另一个活动(ActivityA)

Intent tmp = new Intent(getApplicationContext(), ActivityA.class);
tmp.putExtra("Key", "Value");
startActivity(tmp);
Run Code Online (Sandbox Code Playgroud)

然后在 ActivityA 中打印出该值

Log.i("TAG", getIntent().getExtras().getString("Key"));
Run Code Online (Sandbox Code Playgroud)

上面的行将打印出日志中的值

然后在 ActivityA 中我将按下一个按钮以使用以下代码启动 ActivityB

Intent tmp = newIntent(getApplicationContext(), ActivityB.class);
startActvityForResult(tmp, 1000) //1000 is the result code
Run Code Online (Sandbox Code Playgroud)

然后,当 ActivityB 启动时,当我按下按钮时,我想使用以下代码将数据发送回 ActivityA:

Intent returnIntent = new Intent();
returnIntent.putExtra("Test1", "Value2");
setResult(RESULT_OK, returnIntent);
finish();
Run Code Online (Sandbox Code Playgroud)

以上所有操作都没有问题。我想要做的是在 ActivityA 的 onActivityResult(...) 中修改用于使用此处返回的值创建 ActivityA 的意图

public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    //modify intent used to …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-activity

5
推荐指数
0
解决办法
2085
查看次数

字符串比较不起作用(android)

我的字符串比较不起作用.我不知道为什么.即使两个字符串不相同,它也会返回它总是相等的

这是我使用的代码

if(videoFile.equals(LangSelect.INSTRUCTION_01));
    {
        Log.i("InstructionVideo", "video and instruction are equal\n"+ videoFile + "\n" + LangSelect.INSTRUCTION_01);

        //hideBackButton();
    }
Run Code Online (Sandbox Code Playgroud)

videoFile是intro_x.mp4,其中x从0变为4,而INSTRUCTION_01是into_0.mp4

我的onCreate的一部分确实设置了videoFile变量

    //get which video file to play
    videoFile = getIntent().getExtras().getString("PlayVideo");

    Log.i("InstructionVideo", "videoFile name: " +videoFile);
Run Code Online (Sandbox Code Playgroud)

这是该部分的LogCat

 05-15 14:59:57.078: I/InstructionVideo(2952): videoFile name: intro_0.mp4
 05-15 14:59:57.085: I/InstructionVideo(2952): video and instruction are equal
 05-15 14:59:57.085: I/InstructionVideo(2952): intro_0.mp4
 05-15 14:59:57.085: I/InstructionVideo(2952): intro_0.mp4
 05-15 14:59:57.124: I/surfaceCreated(2952): created
 05-15 14:59:58.324: I/LangSelect(2952): 7
 05-15 14:59:58.390: I/InstructionVideo(2952): videoFile name: intro_1.mp4
 05-15 14:59:58.390: I/InstructionVideo(2952): video and instruction are equal 
 05-15 14:59:58.390: …
Run Code Online (Sandbox Code Playgroud)

java string comparison android

2
推荐指数
1
解决办法
690
查看次数

为什么File.exists返回误报

我的android File.exists功能有一个奇怪的问题.以下是我的代码

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        super.onCreateView(inflater, container, savedInstanceState);
        View view = inflater.inflate(R.layout.fragment_file_browser, container);

        DataBaseHelper tmpHelper = new DataBaseHelper(getActivity());
        ButtonInfoContainer infoContainer = tmpHelper.getVideoWithId(videoId);



        //Tmp way to use this. When UX is finished will create a better way.
        File f = new File(Environment.getExternalStorageDirectory() + "/aslkfj");
        Log.i(StaticValues.TAG, Environment.getExternalStorageDirectory() + "/aslkfj");

        LinearLayout tmpView2 = (LinearLayout) view.findViewById(R.id.custom_recordings);
        if(f.exists());
        {
            Log.i(StaticValues.TAG, "f exists");

            String[] tmp = f.list();
            View tmpView = null;

            if(tmp != null)
            {
                for(int i = 0; …
Run Code Online (Sandbox Code Playgroud)

java file-io android file

0
推荐指数
2
解决办法
512
查看次数